我有两个用户定义的CLR对象,它们是相同的,只是名称不同,例如这段代码:
public class Person
{
public string Name { get; set; }
public string Address { get; set; }
public string LastName { get; set; }
public string ETC { get; set; }
}
public class PersonData
{
public string Name { get; set; }
public string Address { get; set; }
public string LastName { get; set; }
public string ETC { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过从这些CLR中的任何一个创建一个对象,然后逐个传递所有属性来完成.
但还有另一种方式吗?我有一些相当大的CLR,15个属性.
[编辑]
更多上下文.那里的课程已经存在.我使用数据库生成了一个模型EntityFramework.数据库与类几乎完全相同.
此外,它已经存在很多代码.这些类也继承了几个接口等.现在重构不是一个选项,所以我现在正在寻找一个简单的解决方案.
如果您是这些类的作者,您可以让它们实现相同的接口,或者更好的是,从相同的类继承。这样您就不必将值从一个复制到另一个 - 只需使用对其父类型的引用。请记住,拥有几个具有完全相同成员的不相关类型是一个明确的迹象,表明您需要尽快重新考虑您的设计。