ValueInjecter:如何在执行时忽略某些属性.InjectFrom <unflatloopvalueinjection>(data)?</unflatloopvalueinjection>

时间:2013-12-23 18:16:08

标签: c# .net valueinjecter

我使用的是ValueInjecter而不是AutoMapper。我试图使用

执行unflattening操作
.InjectFrom<UnflatLoopValueInjection>(model)

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

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

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

Prop1Prop2将被忽略。

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

答案 1 :(得分:0)

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

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

您可以添加属性忽略属性或将其放在构造函数中,以及您拥有行

的位置
 var prop = sourceProp;

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

这可以让你快速了解你可以做什么