忽略使用Automapper映射事件

时间:2015-02-15 18:08:56

标签: c# automapper eventhandler

我必须有两个相同的对象(AB)。我希望将所有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 ???

映射事件处理程序属性

1 个答案:

答案 0 :(得分:0)

您正在使用错误的映射语句。

B = Mapper.Map<myClass, myClass>(A);

创建B对象。上一个对象消失了。显然,新的B没有事件处理程序。

相反,你应该使用

Mapper.Map(A, B);

现在现有 B收到了A个值,您会看到B&#39; s {{ 1}}事件将会触发。