Si j'ai une source imbriquée et comme destination ceci:Mapping vers une destination qui n'existe pas dans la source basée sur le nom de propery avec Automapper
public class UserInformationViewModel
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string EmailAddress { get; set; }
public PhysicalAddressViewModel BillingAddress { get; set; }
public PhysicalAddressViewModel ShippingAddress { get; set; }
}
public class PhysicalAddressViewModel
{
public string Line1 { get; set; }
public string Line2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
}
public class UserInformation
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string EmailAddress { get; set; }
public PhysicalAddress BillingAddress { get; set; }
public PhysicalAddress ShippingAddress { get; set; }
}
public class PhysicalAddress
{
public AddressType Type { get; set; }
public string Line1 { get; set; }
public string Line2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
}
Et AddressType est un ENUM comme celui-ci:
public enum AddressType
{
Billing = 1,
Shipping = 2,
Default = 3
};
Je dispose de cartes de configuration comme ceci:
CreateMap<UserInformationViewModel, UserInformation>();
CreateMap<PhysicalAddressViewModel, PhysicalAddress>();
Comment puis-je obtenir automapper pour renseigner Adresse Tapez avec l'enum appropriée en fonction de la propriété qui est remplie. Par exemple, l'objet PhysicalAddress qui se trouve dans UserInformation.BillingAddress doit être défini sur AddressType.Billing alors que l'objet PhysicalAddress qui se trouve dans UserInformation.ShippingAddress doit être défini sur AddressType.Shipping. J'ai essayé tout ce que je pouvais penser pour faire ce travail, mais je n'ai pas eu de chance.
Great! Je pense que cela fonctionnera et je l'utiliserai jusqu'à ce que quelqu'un trouve une meilleure solution. Je donnerai un jour ou deux, et s'il n'y a pas de meilleures réponses, je marquerai celle-ci. –