私はAutoMapperのドキュメントを参照して、これに推奨される解決策を見つけましたが、それを見つけることはできませんでした。プロパティをコレクションアイテムにマップする
のは、私は、次の
public class Foo
{
public string Note { get; set; }
}
このクラスは、クライアントから移入されますと
注public class Note
{
public string Text { get; set; }
// other properties excluded for brevity
}
ある
public class Bar
{
public IList<Note> Notes { get; set; }
}
次のドメインオブジェクトクラスにマッピングされるようなクラスがあるとしましょう
Note
文字列プロパティをにマップします。最初にNote
という新しいインスタンスのText
プロパティに移動し、Note
をBar
のNotes
コレクションに追加します。私はこの操作の最初の部分(Note
の新しいインスタンスに文字列をマッピングする)を実行するのにValueResolver
を使用していますが、2番目の部分(その項目をコレクションの項目にマッピングする方法)についてはわかりません。
これを行う最もクリーンな方法は何ですか?
バーは、データソースから取り込まれたドメインオブジェクトです。私はこれが新しいドメインオブジェクトインスタンスへのマッピングを担当すると思いますが、ドメインオブジェクトがデータソースから読み込まれ、既にコレクションにアイテムを含んでいて、そのコレクションにアイテムを追加したいというケースを処理しますか? –
AfterMapを使用するためのオプションで自分の答えを編集しました。また、複雑すぎる場合は、カスタムタイプコンバータを使用することもできます。http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters – PatrickSteele
MapAfterは適切な方向に向いてくれてありがとう:) –