4

我正在使用 ValueInjecter 而不是 AutoMapper。我正在尝试使用

.InjectFrom<UnflatLoopValueInjection>(model)

它可以工作,但我还想指定一些在展开操作期间要忽略的属性,例如编写如下内容:

.InjectFrom<UnflatLoopValueInjection>(new IgnoreProperties("Prop1", "Prop2"), model)

或者

.InjectFrom<UnflatLoopValueInjection>(model).IgnoreProperties("Prop1", "Prop2")

有任何想法吗?

4

2 回答 2

5

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

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

Prop1并将Prop2被忽略。

此功能可能在以前的版本中已经存在,但例如在 v2.3 中不存在。

于 2016-01-15T03:11:28.073 回答
0

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

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

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

 var prop = sourceProp;

 //add
 if(ignoredProps.Contains(prop) continue;

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

于 2014-12-12T13:31:45.047 回答