首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将AutoMapper配置为映射到具体类型,但允许在我的类的定义中使用接口

将AutoMapper配置为映射到具体类型,但允许在我的类的定义中使用接口
EN

Stack Overflow用户
提问于 2012-10-26 03:13:36
回答 1查看 9.9K关注 0票数 21

我有一些代码,类似于下面的代码。基本上,它表示从web服务获取数据并将其转换为客户端对象。

void Main()
{
    Mapper.CreateMap<SomethingFromWebService, Something>();    
    Mapper.CreateMap<HasSomethingFromWebService, HasSomething>(); 
    // Service side
    var hasSomethingFromWeb = new HasSomethingFromWebService();
    hasSomethingFromWeb.Something = new SomethingFromWebService
            { Name = "Whilly B. Goode" };
    // Client Side                
    HasSomething hasSomething=Mapper.Map<HasSomething>(hasSomethingFromWeb);  
}    
// Client side objects
public interface ISomething
{
    string Name {get; set;}
}    
public class Something : ISomething
{
    public string Name {get; set;}
}    
public class HasSomething
{
    public ISomething Something {get; set;}
}    
// Server side objects
public class SomethingFromWebService
{
    public string Name {get; set;}
}    
public class HasSomethingFromWebService
{
    public SomethingFromWebService Something {get; set;}
}

我遇到的问题是,我想在我的类中使用接口(在本例中是HasSomething.ISomething),但我需要让AutoMapper映射到具体类型。(如果我没有映射到具体类型,那么AutoMapper将为我创建代理。这会在我的应用程序中引发其他问题。)

上面的代码给出了这个错误:

缺少类型映射配置或不支持的映射。

映射类型: SomethingFromWebService -> ISomething

UserQuery+SomethingFromWebService -> UserQuery+ISomething

所以我的问题是,如何映射到一个具体的类型,同时仍然在我的类中使用接口?

备注:我尝试添加此映射:

Mapper.CreateMap<SomethingFromWebService, ISomething>();

但是返回的对象不是Something类型,它返回一个使用ISomething作为模板生成的代理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 03:36:03

所以我想出了一些似乎可行的方法。

如果我添加这两个映射:

Mapper.CreateMap<SomethingFromWebService, Something>();
Mapper.CreateMap<SomethingFromWebService, ISomething>().As<Something>(); 

然后它就会像我想要的那样工作。

我还没有找到任何关于'As‘方法的文档(试着在谷歌上搜索一下!:),但它似乎是一个映射重定向。

例如:对于这个映射(ISomething),使用As a Something解析它。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13075588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档