После работы с AutoMapper я наткнулся на ValueInjecter на этом сайте. Я пробую это, но я застрял в том, что, вероятно, очень простой сценарий.
Но прежде чем копаться в примере кода, кто-нибудь знает, работает ли ValueInjecter в веб-среде Medium-Trust? (Как Godaddy?)
Хорошо, на код! У меня есть следующие модели:
public class NameComponent
{
public string First { get; set; }
public string Last { get; set; }
public string MiddleInitial { get; set; }
}
public class Person
{
public NameComponent Name { get; set; }
}
, который я хочу сопоставить со следующим DTO:
public class PersonDTO : BaseDTO
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set { NotifyPropertyChanged(() => FirstName, ref _firstName, value); }
}
private string _middleInitial;
public string MiddleInitial
{
get { return _middleInitial; }
set { NotifyPropertyChanged(() => MiddleInitial, ref _middleInitial, value); }
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set { NotifyPropertyChanged(() => LastName, ref _lastName, value); }
}
}
Поэтому, когда я хочу отобразить модель из DTO, мне нужен Model.Name.First -> DTO.FirstName
и при переходе от DTO к Model мне нужно FirstName -> Name.First. Насколько я понимаю, это не просто Flatten / UnFlatten, потому что слова также меняются местами, то есть: FirstName <-> Name.First. Таким образом, имена и фамилии могут использовать одно и то же правило, но как насчет MiddleInitial? Model.Name.MiddleInitial -> DTO.MiddleInitial.
Я вижу, что есть некоторые плагины, но ни один из них, кажется, не делает то, что я хотел бы. Кто-нибудь еще сталкивался с этим сценарием?