C# 理解汽车制造商

C# 理解汽车制造商,c#,automapper,C#,Automapper,我正在努力学习c#在工作中,我真的不知道如何使用Automapper在同一时间。有一种扩展方法正在站点的其他区域使用。我试着在另一个C#class上使用它 publicstatictresult映射到(这个对象本身) { if(self==null) 抛出新ArgumentNullException(); return(TResult)Mapper.Map(self,self.GetType(),typeof(TResult)); } 我得到一个异常“AutoMapper.automappin

我正在努力学习c#在工作中,我真的不知道如何使用Automapper在同一时间。有一种扩展方法正在站点的其他区域使用。我试着在另一个C#class上使用它

publicstatictresult映射到(这个对象本身)
{
if(self==null)
抛出新ArgumentNullException();
return(TResult)Mapper.Map(self,self.GetType(),typeof(TResult));
}
我得到一个异常“AutoMapper.automappingexception类型的异常发生在AutoMapper.dll中,但没有在用户代码中处理。”然后当我看到内部异常时,它说,“试图将BlahEntity映射到BlahResponse。”我不确定如何调试这个异常。有什么想法吗?提前感谢。

您将首先需要“创建”对象之间的映射,即使映射没有进行自定义。例如:

Mapper.CreateMap<DomainObject, DTOObject>();
Mapper.CreateMap();
请注意,这是一个单向映射,要返回到另一个方向,您需要将其映射到另一个方向。请注意,关于为什么只从域->DTO,而不是从另一个方向,有大量的博客/帖子/答案,但对于应用程序中的其他类型的对象,应该没问题。因此:

Mapper.CreateMap<DTOObject,DomainObject>();
Mapper.CreateMap();
Automapper不使用自定义设置,而是使用约定来决定这些对象之间的关系。例如,如果两个对象都有一个名为“CustomerName”的字段,那么很明显,它们应该自动映射

还有其他选项可用于创建对象之间相互关联的自定义方式。例如,在我们的DTO中,我们可能只希望有“CustomerName”,但在我们的域模型中,我们有“FirstName”和“LastName”。我们可以创建一个特殊的映射配置,在映射对象时自动连接这两个


查看此处的Automapper文档:

您是否为对象创建了地图?如果您刚刚开始使用Automapper,您可以阅读以下内容:@squillman不,我还没有创建地图。我不知道我需要这么做。我们来看看维基。
Mapper.CreateMap<DTOObject,DomainObject>();