ValueInjecter:如何在执行时忽略某些属性.InjectFrom (数据)?

我正在使用ValueInjecter而不是AutoMapper。 我正在尝试使用。执行unflattening操作

.InjectFrom(model) 

它可以工作,但我还想在unflattening操作期间指出一些要忽略的属性,例如:

 .InjectFrom(new IgnoreProperties("Prop1", "Prop2"), model) 

要么

 .InjectFrom(model).IgnoreProperties("Prop1", "Prop2") 

有任何想法吗?

使用最新版本的Omu.ValueInjecter(撰写本文时为v3.1.1),此function是内置的:

 instanceA.InjectFrom(new LoopInjection(new[] { "Prop1", "Prop2" }), instanceB); 

Prop1Prop2将被忽略。

此function可能已存在于以前的版本中,但不是在v2.3中。

您可以获取UnflatLoopValueInjection的源代码并创建自己的注入,该注入具有此function以及您需要的任何其他内容。

这是它的代码: http : //valueinjecter.codeplex.com/SourceControl/latest#ValueInjecter/UnflatLoopValueInjection.cs

您可以添加Property Ignored属性或将其放在构造函数中,以及您拥有该行的位置

  var prop = sourceProp; //add if(ignoredProps.Contains(prop) continue; 

这应该可以让您快速了解自己可以做些什么