Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何强制转换具有相同属性(类型、编号等)但名称不同的2个类_C# - Fatal编程技术网

C# 如何强制转换具有相同属性(类型、编号等)但名称不同的2个类

C# 如何强制转换具有相同属性(类型、编号等)但名称不同的2个类,c#,C#,大家好 我在一家目录管理公司工作 我有两门课: 第一个:从XMl文件的xsd.exe生成器中获取 第二:来自WebService代理类的gor 这两个类是相同的属性,唯一的问题是它们由两个不同的团队开发: 例如: public partial class CatalogPackageAMSApp_Data { private string appField; private byte nameField; private string valueField; }

大家好 我在一家目录管理公司工作

我有两门课:

第一个:从XMl文件的xsd.exe生成器中获取 第二:来自WebService代理类的gor

这两个类是相同的属性,唯一的问题是它们由两个不同的团队开发: 例如:

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;
}
我怎样才能施展、影响。。。那两个班互相学习

致意


如果它们完全相同,我可以作进一步解释,你有什么理由不能将其中一个更改为继承另一个吗?那么类型之间的转换就很简单了。由于两者都是自动生成的,因此我会修改自动生成频率较低的类。

如果它们完全相同,是否有任何原因不能将其中一个更改为继承另一个?那么类型之间的转换就很简单了。由于这两个类都是自动生成的,所以我会修改自动生成频率较低的类。

基本上,您不能这样做-它们不是同一个类,CatalogPackageAmApp_数据的实例不是AppData的实例,反之亦然

您可以做的是编写方法/构造函数在这两个运算符之间进行转换,并可能实现转换运算符。就我个人而言,我更喜欢方法方法,因为它使您在执行转换时更加明显


你真的要两门课都上吗?如果您真的需要两个类,它们是否都可以使用composition来包含包含实际数据的第三个公共类的实例?

基本上,您不能这样做-它们不是同一个类,CatalogPackageamApp_数据的实例不是AppData的实例,反之亦然

您可以做的是编写方法/构造函数在这两个运算符之间进行转换,并可能实现转换运算符。就我个人而言,我更喜欢方法方法,因为它使您在执行转换时更加明显


你真的要两门课都上吗?如果您确实需要两个类,它们是否都可以使用composition来包含第三个公共类的实例,该类包含实际数据?

它们都是分部类。只需将相同的接口附加到具有适当属性的每个接口,然后它们都可以转换为接口类型


你不能在他们之间转换,因为他们彼此没有关系。基类或接口中必须有共同点。

它们都是部分类。只需将相同的接口附加到具有适当属性的每个接口,然后它们都可以转换为接口类型


你不能在他们之间转换,因为他们彼此没有关系。基类或接口中必须有一个通用性。

我不确定这是否适用于您的情况,但我相信如果您使用的是WCF,web服务代理生成器svcuti.exe,否则wsdl.exe在生成web服务代理时能够重用现有类型

有关如何生成共享类型的代理的其他链接:

如果您使用的是.NET 2.0:


我不确定这是否适用于您的情况,但我相信如果您使用的是WCF,web服务代理生成器svcuti.exe就可以使用,否则wsdl.exe在生成web服务代理时可以重用现有类型

有关如何生成共享类型的代理的其他链接:

如果您使用的是.NET 2.0:


我想说,在两者之间建立一个共同的接口将是正确的解决方案。如果这不是一个选项,您可以使用Automapper为您处理映射。

我想说,两者之间的公共接口将是正确的解决方案。如果这不是一个选项,您可以使用Automapper为您处理映射