[英]Ignore mapping an event with Automapper
我必须有两个相同的对象( 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映射事件处理程序属性?
您正在使用错误的映射语句。
B = Mapper.Map<myClass, myClass>(A);
创建一个新的B
对象 。 上一个对象消失了。 显然,新的B
没有事件处理程序。
相反,你应该使用
Mapper.Map(A, B);
现在现有的 B
接收A
的值,你会看到B
的PropertyChanged
事件将被触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.