2011-03-10 8 views
0

J'appelle un service Web .asmx que j'ai ajouté à un projet en tant que référence Web.Où configurer AutoMapper pour convertir des objets proxy asmx en objets de domaine?

Tous les objets qui reviennent du service Web se trouvent dans l'espace de noms du service Web. Je voudrais utiliser AutoMapper pour mapper ces objets à mes objets de domaine.

par exemple:

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

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

Cela fonctionne ...

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

Mais je voudrais faire ...

using My.Domain; 

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

Y at-il un endroit où je peux mettre à AutoMapper interjeter dans le webservice afin que je puisse le faire? Où puis-je le configurer? Ou y a-t-il un autre moyen de le faire?

Répondre

1

la meilleure façon de le faire dans AutoMapper est quelque chose comme ...

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

Oui, vous avez une ligne supplémentaire à chaque fois que vous avez besoin de convertir quelque chose ou de la référence de service, mais avec AutoMapper à moins c'est juste une ligne et tout le désordre est caché à l'intérieur du mapper ainsi vous ne devez pas écrire et maintenir.

Questions connexes