Mapper.CreateMap<BusinessObject, Proxy.DataContacts.DCObject>()
.ForMember(x => x.ExtensionData, y => y.Ignore())
.ForMember(z => z.ValidPlaces, a=> a.ResolveUsing(typeof(ValidPlaces)));
Mapper.AssertConfigurationIsValid();
proxydcObject = Mapper.Map<BusinessObject, Proxy.DataContracts.DCObject>(_instanceOfBusinessObject); //throws an exception saying ValidPlaces could not be resolved
public class BusinessObject
{
public Enum1 Enum1 { get; set; }
public List<ValidPlaces> ValidPlaces{ get; set; }
}
public class ValidPlaces
{
public int No { get; set; }
public string Name { get; set; }
}
public class DCObject
{
[DataMember]
public Enum1 Enum1 { get; set; }
[DataMember]
public List<ValidPlaces> ValidPlaces{ get; set; }
}
fonctionne Mapper.CreateMap trouvent quand Mapper.AssertConfigurationIsValid();
(sans exception jetés sur cette ligne) est appelée, mais quand je l'appelle en fait dans le service WCF sur la ligne suivante qui ne figure pas ici la Lancements d'Automapper et exception indiquant que ValidPlaces n'a pas pu être mappé. Cela fonctionne très bien si je mets Ignore() sur la propriété ValidPlaces mais, idéalement, je veux que cela soit passé.Automapper -ne peut résoudre la liste générique
Tous les experts AutoMapper peuvent vous aider.
Mon DCObject a extensiondata mais l'objet métier n'a pas cette propriété et par conséquent je l'ai mis en place sinon j'obtiens une erreur. Aussi T == U dans mon cas mais je veux Liste traduit en Liste –
chugh97
C'est bien. AutoMapper prend en charge la liste automatiquement, sans aucune configuration supplémentaire. Je peux le faire: Mapper.Map > (nouveau [] {1, 2, 3}); Avec une configuration nulle. Vous avez seulement besoin d'enregistrer les types d'éléments, et puisque les types d'éléments sont identiques dans votre cas, aucune configuration supplémentaire n'est nécessaire. AutoMapper prend en charge les types assignables prêts à l'emploi. –