我有一些类需要能够将所有公共属性从一个对象复制到另一个对象。
每个类都有一组可能与任何其他类不同的公共属性。
例子:
class Base
{
// Common properties/methods...
public void Copy<T>(T data) where T : Base
{
// ...
}
}
class D1 : Base
{
public int ID
{
get;
set;
}
}
class D2 : Base
{
public string Name
{
get;
set;
}
}
通过谷歌搜索,我已经阅读了这些方法:
- 使用反射
- 生成 IL 代码
- 序列化
所有这些都非常复杂或非常缓慢,或者有时两者兼而有之。
我错过了什么吗?还有其他方法可以访问原始this
指针吗?
编辑:
我会澄清。
T 是调用类的类型。例如,如果它被 D1 调用,则 T 将始终为 D1。
通用的原因是我真的不知道 T 是什么。
我错过了什么吗?
我应该只Base data
用作参数吗?