【问题标题】:Where to set up AutoMapper to convert asmx proxy objects to domain objects?在哪里设置 AutoMapper 以将 asmx 代理对象转换为域对象?
【发布时间】:2011-03-10 12:49:50
【问题描述】:

我正在调用我已作为 Web 参考添加到项目中的 .asmx Web 服务。

从 web 服务返回的任何对象都在 web 服务的命名空间中。我想使用 AutoMapper 将这些对象映射到我的域对象。

例如:

namespace My.Domain
{
    public class Person
    {
        public string Name { get; set; }
        public Pet Pet { get; set; }
    }

    public class Pet
    {
        public string Name { get; set; }
    }
}

这行得通...

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 服务,这样我就可以做到这一点?我可以在哪里设置?或者我还需要其他方法吗?

【问题讨论】:

    标签: c# mapping automapper business-objects proxy-classes


    【解决方案1】:

    在 AutoMapper 中执行此操作的最简单方法是...

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

    是的,每次您需要将某些内容转换为服务引用或从服务引用转换时,您都会多出一行,但使用 AutoMapper 至少它只是一行,所有的混乱都隐藏在映射器中,因此您不必编写并维护它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 2011-12-31
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多