- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定 3 个类,
A 和 B 每个都有一个 ID 属性,然后是其他各种属性
和C,它有一个ID,以及A和B的组合属性,
我要
C.InjectFrom(A);
C.InjectFrom(B);
这样来自 A 的 ID 将被保留且不会被 B 覆盖。
显然,在这个简单的例子中,我可以颠倒这两个调用的顺序,但在我的真实示例中,它稍微复杂一些,我不能只通过排序来解决问题。
本质上,我希望第二次注入(inject)忽略第一次注入(inject)已经处理的所有内容,并且这可能会在多次注入(inject)链中继续进行。其中一些注入(inject)也可能来自相同的对象
C.InjectFrom(A);
C.InjectFrom<SomeInjector>(A);
C.InjectFrom<SomeInjector2>(A);
C.InjectFrom<SomeInjector3>(A);
等等
最佳答案
给你:
using System;
using System.Collections.Generic;
using Omu.ValueInjecter;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var a = new { Id = 1, P1 = "p1" };
var b = new { Id = 2, P2 = "p2" };
var c = new C();
var propList = new List<string>();
c.InjectFrom(new HandlePropOnce(propList), a);
c.InjectFrom(new HandlePropOnce(propList), b);
Console.WriteLine("Id = {0} P1 = {1} P2 = {2}", c.Id, c.P1, c.P2);
}
}
public class C
{
public int Id { get; set; }
public string P1 { get; set; }
public string P2 { get; set; }
}
public class HandlePropOnce : ConventionInjection
{
private readonly IList<string> handledProps;
public HandlePropOnce(IList<string> handledProps)
{
this.handledProps = handledProps;
}
protected override bool Match(ConventionInfo c)
{
if (handledProps.Contains(c.SourceProp.Name)) return false;
var isMatch = c.SourceProp.Name == c.TargetProp.Name && c.SourceProp.Type == c.TargetProp.Type;
if (isMatch) handledProps.Add(c.SourceProp.Name);
return isMatch;
}
}
}
关于valueinjecter - 使用 ValueInjecter,有没有办法只注入(inject)一次给定的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867703/
给定 3 个类, A 和 B 每个都有一个 ID 属性,然后是其他各种属性 和C,它有一个ID,以及A和B的组合属性, 我要 C.InjectFrom(A); C.InjectFrom(B); 这样来
例如,我想将属性 Foo.ID 映射到 Bar.Id,这可能吗? 最佳答案 您需要创建自己的 ConventionInjection在不区分大小写的情况下比较属性名称: public class Ig
我在 AutoMapper 上使用 ValueInjector(3.x),但我有一些问题。 首先,我不明白UnflatLoopInjection 和FlatLoopInjection 之间的区别。 我
我认为我缺少一个关于 valueinjecter 和/或 AutoMapper 的简单概念,但是如何将父级 dto.Entity 深度克隆到 biz.Entity 并包含所有子级? 例如,biz.pe
这是 same question (but with AutoMapper) 的对应物.我用 ValueInjecter如果有解决方案,我很感兴趣。 简化的代码示例: // get a list of
我需要扩展 Omu.ValueInjecter 以在进行属性分配之前执行检查。给定下面的代码示例,prop A 的赋值应该仅在 SetA 为真时发生。我怀疑 LoopValueInjection 在这
我尝试使用 ValueInjecter 将多个对象映射到 View 模型对象.但它并没有像我预期的那样工作。 代码: class Call { public string Number { g
我正在寻找有关如何使用 ValueInjecter 解决以下问题的建议。 注意:在任何人跳入并且a)告诉我我做错了或者b)告诉我我不应该之前使用 ValueInjecter - 请不要。因为 a) 我
是否可以使用 ValueInjecter 从方法中注入(inject)值? 类似于 AutoMapper 所做的 (GetTotal()):https://github.com/AutoMapper/
是否可以从这样的东西中注入(inject): public class DomainEntity { public Resource DescriptionResource { get; se
我正在使用 ValueInjecter 映射两个相同的对象。我遇到的问题是 ValueInjector 从我的源复制空值到我的目标。所以我将大量数据丢失为空值。 这是我的对象的一个示例,有时只填充
是否可以在 2 个不同的枚举之间进行映射? 也就是说,我想获取一个枚举值并将其映射到不同枚举类型中的相应值。 我知道如何使用 AutoMapper 做到这一点: // Here's how to co
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我想我有两个选择: 1) 从 CodePlex 下载:http://valueinjecter.codeplex.com/ 2)从NuGet官方包源下载(目前下载量只有133)。 我更喜欢从 NuGe
如果我有 Json 对象,我想映射到具体对象,我该怎么做? public class Student { public string Name { get; set; }
我正在尝试使用 ValueInjector 来展平一个类,并让它也复制来自 Nullable's 的值至 int的。 例如给定以下(人为的)类: class CustomerObject {
我花了一些时间比较这三个映射器,有趣的是为什么 emitmapper 与任何 valueinjecter 或 automapper 之间的性能差异如此之大(最后两个在性能上具有可比性)。从 emitm
如何将一个对象的属性映射到具有不同属性名称的另一个对象? 我有一个 Product 类,如下所示: public class Product : IEntity { public int I
我为 ValueInjecter 创建了一个自定义注入(inject)类它对通用子集合进行递归注入(inject),但它适用于现有目标对象,而不是像 VI 站点上的“CloneInjection”示例
请看下面的代码。使用 AutoMapper 测试通过,使用 ValueInjecter 测试失败: using NetFwTypeLib; [TestClass] public class UnitT
我是一名优秀的程序员,十分优秀!