大家好 我在目录管理员工作。
我有2个班级:
第一个:从XMl文件的xsd.exe生成器获取 第二名:来自WebService代理类的gor
这两个类是相同的(相同的属性),唯一的是他们被2个不同的团队开发: 例如:
public partial class CatalogPackageAMSApp_Data {
private string appField;
private byte nameField;
private string valueField;
}
public partial class AppData {
private string appField;
private string nameField;
private string valueField;
}
我怎样才能投射,影响......彼此的这两个类。
祝你好运
我可以进一步解释
答案 0 :(得分:7)
他们都是部分类。只需将具有相应属性的相同接口连接到每个接口,然后它们都可以转换为接口类型。
你不能在他们之间施放,因为他们彼此没有关系。基类或接口必须具有通用性。
答案 1 :(得分:2)
你基本上不能 - 它们不是同一个类,CatalogPackageAMSApp_Data
的实例不是AppData
的实例,反之亦然。
你可以做的是编写方法/构造函数来在两个 - 和可能的实现转换运算符之间进行转换。我个人更喜欢方法方法,因为当你进行转换时它会更明显。
你真的有同时拥有这两个课程吗?如果你真的需要两个类,他们是否可以使用composition来包含第三个包含实际数据的公共类的实例?
答案 2 :(得分:0)
如果它们完全相同,是否有任何理由你不能改变一个继承另一个?然后在类型之间进行转换很简单由于两者都是自动生成的,我会修改自动生成频率较低的类。
答案 3 :(得分:0)
我不确定这是否适用于您的情况,但我相信Web服务代理生成器(如果您使用WCF则为svcutil.exe,否则为wsdl.exe)能够在生成时重用现有类型网络服务代理。
http://blogs.msdn.com/b/lifenglu/archive/2007/05/09/type-sharing-in-wcf-service-reference.aspx
有关如何生成共享类型的代理的其他链接:
svcutil.exe redundant proxy classes
http://msdn.microsoft.com/en-us/library/aa347733.aspx
如果您使用的是.NET 2.0:
http://msdn.microsoft.com/en-us/library/7h3ystb6%28v=vs.80%29.aspx
答案 4 :(得分:0)
我会说两者之间的通用接口是正确的解决方案。如果这不是一个选项,您可以使用Automapper(http://automapper.codeplex.com/)来为您处理映射。