我有两个相同的对象(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
事件(S)将闪光。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句