リストプロパティを使用してオブジェクトをマップするオートマッパーは、デフォルトで、コピー先オブジェクトのリストプロパティをソースオブジェクトのインスタンスに設定します。AutoMapperを使用してリストアイテムをコピーする
automapperが新しいリストを作成し、アイテムをコピーするがリストインスタンスをコピーしない方法はありますか?
私は、次のテストに合格したいと思います:
ウィジェットクラスがどのように見えるvar widget = new Widget
{
Tags = new List<string> {"big", "bright"}
};
Mapper.Reset();
Mapper.CreateMap<Widget, Widget>();
var widgetCopy = Mapper.Map<Widget, Widget>(widget);
CollectionAssert.Contains(widgetCopy.Tags, "big");
CollectionAssert.Contains(widgetCopy.Tags, "bright");
Assert.AreNotSame(widget.Tags, widgetCopy.Tags);
:2つのタグのプロパティは、同じインスタンスを指すので
class Widget
{
public IList<string> Tags { get; set; }
}
現在、最後のアサートが失敗しましたリスト。これは、オブジェクトがHibernateで永続化されているときの問題です。