AutoMapper を使用した後、このサイトでValueInjecterに出会いました。私はそれを試していますが、おそらく非常に単純なシナリオに固執しています。
しかし、コード サンプルを掘り下げる前に、ValueInjecter が Medium-Trust Web 環境で動作するかどうか知っている人はいますか? (ゴダディのように?)
さて、コードに!私は次のモデルを持っています:
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 からモデルに移動する場合は、FirstName -> Name.First が必要です。私の理解では、これは単純な Flatten/UnFlatten ではありません。というのは、単語も逆になっているからです。つまり、FirstName <--> Name.First. 姓と名は同じ種類のルールを使用できますが、ミドルイニシャルはどうでしょうか? Model.Name.MiddleInitial -> DTO.MiddleInitial.
いくつかのプラグインがあるようですが、どれも私が望むことをしていないようです。他の誰かがこのシナリオに遭遇しましたか?