Если у меня есть вложенный источник и место назначения, как это:
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; }
}
И AddressType это перечисление, подобное этому:
public enum AddressType
{
Billing = 1,
Shipping = 2,
Default = 3
};
И у меня есть настройки карт, как это:
CreateMap<UserInformationViewModel, UserInformation>();
CreateMap<PhysicalAddressViewModel, PhysicalAddress>();
Как я могу заставить autopper заполнить AddressType правильным перечислением на основе заполняемого свойства.Например, объект PhysicalAddress, который находится в UserInformation.BillingAddress, должен быть установлен в AddressType.Billing, а объект PhysicalAddress, который находится в UserInformation.ShippingAddress, должен быть установлен в AddressType.Shipping.
Я перепробовал все, что могподумайте, чтобы сделать эту работу, но мне не повезло.