C# 我可以将值映射到现有对象吗?

C# 我可以将值映射到现有对象吗?,c#,valueinjecter,C#,Valueinjecter,我使用Omu.ValueInjecter已经有一段时间了,但只是将值“注入”到新创建的对象中 public K MapNew(T source) { K target = new K(); target.InjectFrom(source); return target; } 上面的代码运行良好,将值从源映射到新创建的目标 但是,我正在尝试(但未能做到)将值从源对象映射到现有目标。下面的代码与上面的代码类似,区别在于我没有创

我使用Omu.ValueInjecter已经有一段时间了,但只是将值“注入”到新创建的对象中

    public K MapNew(T source) {

        K target = new K();

        target.InjectFrom(source);

        return target;
    }
上面的代码运行良好,将值从源映射到新创建的目标

但是,我正在尝试(但未能做到)将值从源对象映射到现有目标。下面的代码与上面的代码类似,区别在于我没有创建新对象

    public T MapToTarget(T target, K source) {
        return target.InjectFrom(source) as T;
    }
这可能吗?上面的代码只返回未修改属性的目标

编辑

注意,在这两种情况下,源对象和目标对象都具有相同的属性名称

注意

非常感谢Omu提供的所有帮助。

InjectFrom()方法匹配具有相同名称和类型的属性,因此如果有匹配的属性,将对其进行修改


使用ValueInjector,您只需将源和目标的属性名称注入到现有对象中

,但在第二段代码中,我希望将源的值写入目标。这是不会发生的。我想知道我是做错了还是做不到。@DanielHollinrake name and types,必须是确切的名称和类型;如果您想从一种类型转换到另一种类型,您应该创建一个自定义valueinjectionHiya,以确认我希望匹配的属性是确切的名称和类型。目标对象上的某些属性在源对象上不存在,但在这种情况下,我不希望或期望匹配。在这种情况下,应该可以工作,将源类和目标类放在问题中,或者上载一个zip,其中包含一个显示问题的小项目。此处有可为null的注入示例: