代码之家  ›  专栏  ›  技术社区  ›  Buildstarted

用相似的定义将属性从一个对象传递到另一个对象

c#
  •  0
  • Buildstarted  · 技术社区  · 14 年前

    一定有更简单的方法。。。

        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 回复  |  直到 14 年前
        1
  •  1
  •   Dan Bryant    14 年前

    如果您可以控制这两个程序集,请查看 Data Contracts ,这是专门设计来做你所描述的。

        2
  •  1
  •   Stephen Cleary    14 年前
        3
  •  0
  •   STO    14 年前

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