必须有一种更简单的方法......
void TransferFrom(object obj) {
foreach(PropertyInfo prop in this.GetType().GetProperties()) {
prop.SetValue(this, obj.GetType().GetProperty(prop.Name).GetValue(obj, null), null);
}
}
我有两个具有相同对象定义的独立库 - 所有属性名称/类型都相同。以上是复制值的唯一方法还是有另一种方法?我无法引用其中一个dll,并且要复制的对象作为对象而不是不同类型传递。
答案 0 :(得分:1)
如果您可以控制两个程序集,请查看Data Contracts,它们专门用于执行您所描述的内容。
答案 1 :(得分:1)
AutoMapper灵活而强大。我不确定它是否会在没有引用这两种类型的情况下工作,但这是值得考虑的事情。
答案 2 :(得分:0)
我不确定,但是如果两个程序集中的类具有相同的类型名称,则可以尝试通过从assemlby A序列化类型实例来使用XmlSerializer,然后从同一个流中反汇编来自程序集B的类型实例。