Где настроить AutoMapper для преобразования прокси-объектов asmx в доменные объекты? - PullRequest
0 голосов
/ 10 марта 2011

Я вызываю веб-службу .asmx, которую я добавил в проект в качестве веб-ссылки.

Любые объекты, которые возвращаются из веб-службы, находятся в пространстве имен веб-службы.Я хотел бы использовать 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 для вставки в веб-сервис, чтобы я мог это сделать?Где я могу это настроить?Или есть какой-то другой способ, которым я должен сделать это?

1 Ответ

1 голос
/ 11 марта 2011

Самый простой способ сделать это в AutoMapper - это что-то вроде ...

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

Да, у вас есть дополнительная строка каждый раз, когда вам нужно преобразовать что-либо в или из справочника услуг, но с AutoMapper, по крайней мере, это всего лишь одна строка, и весь беспорядок скрыт внутри картографа, поэтому вам не нужно написать и поддерживать его.

...