私は次のクラス構造を持っています:
public class A
{
public bool Property1 { get; set; }
public bool Property2 { get; set; }
}
public class ContainerForA
{
public A A { get; set; }
}
public class A1
{
public bool Property1 { get; set; }
}
public class ContainerForA1
{
public A1 A { get; set; }
}
このクラスのセットのマッピングを作成します。
Mapper.CreateMap<A1, A>();
Mapper.CreateMap<ContainerForA1, ContainerForA>();
このクラスのセットのインスタンスを作成します。
var cnt_a = new ContainerForA()
{
A = new A()
{
Property1 = false,
Property2 = true
}
};
var cnt_a1 = new ContainerForA1()
{
A = new A1()
{
Property1 = true
}
};
電話をかけると、期待した結果が得られます。オブジェクトcnt_aMapper.Map(cnt_a1.A, cnt_a.A)
のプロパティ(Property1
と)の両方がtrueです。Property2
しかし、私が電話すると、Mapper.Map(cnt_a1, cnt_a)
私は真になりProperty1
、偽になりますProperty2
。誰かが私に理由を説明できますか?また、宛先オブジェクトには存在するがソースオブジェクトには存在しないプロパティが失われないように、マッピングを宣言するオプションはありますか?