Хорошо, я вижу несколько вещей, которые вы делаете, которые, вероятно, не помогут.
Во-первых, этот AutoMapper используется для копирования свойств одного объекта в свойства объекта diff. По пути он может опрашивать или манипулировать ими, чтобы получить конечную модель представления результата в правильном состоянии.
- Свойства называются «Get ...», что для меня больше похоже на метод.
- Установщики ваших свойств являются частными, поэтому AutoSetter не сможет их найти. Измените их на минимальные внутренние.
Использование параметризованного конструктора больше не требуется при использовании AutoMapper - поскольку вы конвертируете напрямую из одного объекта в другой. Параметризованный конструктор предназначен для того, чтобы показать, что явно требуется для этого объекта.
CreateMap<Address, AddressEditViewModel>()
.ForMember( x => x.GetOneAddressByDistrictGuid ,
o => o.MapFrom( m => m."GetOneAddressByDistrictGuid") )
.ForMember( x => x.GetZipCodes,
o => o.MapFrom( m => m."GetZipCodes" ) );
Для чего действительно хорош Automapper - это копирование из DataObjects в объекты POCO или объекты View Model.
public class AddressViewModel
{
public string FullAddress{get;set;}
}
public class Address
{
public string Street{get;set;}
public string Suburb{get;set;}
public string City{get;set;}
}
CreateMap<Address, AddressViewModel>()
.ForMember( x => x.FullAddress,
o => o.MapFrom( m => String.Format("{0},{1},{2}"), m.Street, m.Suburb, m.City ) );
Address address = new Address(){
Street = "My Street";
Suburb= "My Suburb";
City= "My City";
};
AddressViewModel addressViewModel = Mapper.Map(address, Address, AddressViewModel);