C# 在何处设置AutoMapper以将asmx代理对象转换为域对象?

C# 在何处设置AutoMapper以将asmx代理对象转换为域对象?,c#,mapping,automapper,business-objects,proxy-classes,C#,Mapping,Automapper,Business Objects,Proxy Classes,我正在调用作为web引用添加到项目中的.asmx web服务 从webservice返回的任何对象都位于webservice的命名空间中。我想使用AutoMapper将这些对象映射到我的域对象 e、 g: 这很有效 My.WebService ws = new My.WebService(); My.WebService.Person person = ws.GetPersonById(1); My.WebService.Pet pet = person.Pet; 但是我想这样做 using

我正在调用作为web引用添加到项目中的.asmx web服务

从webservice返回的任何对象都位于webservice的命名空间中。我想使用AutoMapper将这些对象映射到我的域对象

e、 g:

这很有效

My.WebService ws = new My.WebService();
My.WebService.Person person = ws.GetPersonById(1);
My.WebService.Pet pet = person.Pet;
但是我想这样做

using My.Domain;

My.WebService ws = new My.WebService();
Person person = ws.GetPersonById(1);  
Pet pet = person.Pet;

有没有什么地方我可以把AutoMapper插入到Web服务中,这样我就可以这样做?我在哪里可以设置它?或者我还需要其他方法来实现这一点吗?

在AutoMapper中实现这一点最简单的方法是

var request = Mapper.Map<DomainObject, ServiceReferenceObject>(requestDomainObject);
var result = ws.DoSomething(request);
var resultDomainObject = Mapper.Map<ServiceReferenceObject, DomainObject>(result);
var request=Mapper.Map(requestDomainObject);
var结果=ws.DoSomething(请求);
var resultDomainObject=Mapper.Map(结果);
是的,每次您需要在服务引用之间或从服务引用转换某些内容时,都会有一行额外的内容,但是使用AutoMapper,至少只有一行内容,所有的混乱都隐藏在映射器中,因此您不必编写和维护它

var request = Mapper.Map<DomainObject, ServiceReferenceObject>(requestDomainObject);
var result = ws.DoSomething(request);
var resultDomainObject = Mapper.Map<ServiceReferenceObject, DomainObject>(result);