我使用的是ValueInjecter而不是AutoMapper。我试图使用
执行unflattening操作.InjectFrom<UnflatLoopValueInjection>(model)
它可以工作,但我还想在unflattening操作期间指出一些要忽略的属性,例如写下这样的内容:
.InjectFrom<UnflatLoopValueInjection>(new IgnoreProperties("Prop1", "Prop2"), model)
或
.InjectFrom<UnflatLoopValueInjection>(model).IgnoreProperties("Prop1", "Prop2")
有什么想法吗?
答案 0 :(得分:4)
使用最新版本的Omu.ValueInjecter(撰写本文时为v3.1.1),此功能是内置的:
instanceA.InjectFrom(new LoopInjection(new[] { "Prop1", "Prop2" }), instanceB);
Prop1
和Prop2
将被忽略。
此功能可能已存在于以前的版本中,但不在v2.3中。例如。
答案 1 :(得分:0)
你可以获取UnflatLoopValueInjection的源代码并创建自己的注入,它具有此功能以及您需要的任何其他内容。
这是代码:http://valueinjecter.codeplex.com/SourceControl/latest#ValueInjecter/UnflatLoopValueInjection.cs
您可以添加属性忽略属性或将其放在构造函数中,以及您拥有行
的位置 var prop = sourceProp;
//add
if(ignoredProps.Contains(prop) continue;
这可以让你快速了解你可以做什么