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);
Prop1
和Prop2
将被忽略。
此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;
这应该可以让您快速了解自己可以做些什么