我必须有两个相同的对象(A
,B
)。我希望将所有A
属性映射到B
属性,但我希望在映射时忽略PropertyChanged
个事件。
PropertyChanged
的签名是:
public event PropertyChangedEventHandler PropertyChanged;
我的B
对象在PropertyChanged
befor映射中有一些值,但以下代码会导致:B.PropertyChanged == Null
:
B = Mapper.Map<myClass, myClass>(A);
我试过这个:
Mapper.CreateMap<myClass, myClass>().ForMember(x => x.PropertyChanged, opt => opt.Ignore())
但是我收到了这个错误:
... PropertyChanged只能出现在+ =或 - =的左侧 ...
如何忽略使用Automapper ???
映射事件处理程序属性答案 0 :(得分:0)
您正在使用错误的映射语句。
B = Mapper.Map<myClass, myClass>(A);
创建新B
对象。上一个对象消失了。显然,新的B
没有事件处理程序。
相反,你应该使用
Mapper.Map(A, B);
现在现有 B
收到了A
个值,您会看到B
&#39; s {{ 1}}事件将会触发。