将属性从一个对象传输到另一个具有相似定义的对象

时间:2010-07-02 20:16:10

标签: c#

必须有一种更简单的方法......

    void TransferFrom(object obj) {
        foreach(PropertyInfo prop in this.GetType().GetProperties()) {
            prop.SetValue(this, obj.GetType().GetProperty(prop.Name).GetValue(obj, null), null);
        }
    }

我有两个具有相同对象定义的独立库 - 所有属性名称/类型都相同。以上是复制值的唯一方法还是有另一种方法?我无法引用其中一个dll,并且要复制的对象作为对象而不是不同类型传递。

3 个答案:

答案 0 :(得分:1)

如果您可以控制两个程序集,请查看Data Contracts,它们专门用于执行您所描述的内容。

答案 1 :(得分:1)

AutoMapper灵活而强大。我不确定它是否会在没有引用这两种类型的情况下工作,但这是值得考虑的事情。

答案 2 :(得分:0)

我不确定,但是如果两个程序集中的类具有相同的类型名称,则可以尝试通过从assemlby A序列化类型实例来使用XmlSerializer,然后从同一个流中反汇编来自程序集B的类型实例。