gpt4 book ai didi

c# - 为 Java 类型生成重复的 C# Web 服务代理类

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:46 24 4
gpt4 key购买 nike

我的问题是关于 Java Web 服务和 C# .NET 客户端之间的集成。

服务:带有 Aegis 数据绑定(bind)的 CXF 2.2.3客户端:C#、.NET 3.5 SP1

出于某种原因,Visual Studio 为每个 Java 枚举生成两个 C# 代理枚举。生成的 C# 类无法编译。

例如,这个 Java 枚举:

public enum SqlDialect {
GENERIC, SYBASE, SQL_SERVER, ORACLE;
}

生成此 WSDL:

<xsd:simpleType name="SqlDialect">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="GENERIC" />
<xsd:enumeration value="SYBASE" />
<xsd:enumeration value="SQL_SERVER" />
<xsd:enumeration value="ORACLE" />
</xsd:restriction>
</xsd:simpleType>

对于此 WSDL,Visual Studio 生成两个部分 C# 类(已删除生成的注释):

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="SqlDialect", Namespace="http://somenamespace")]
public enum SqlDialect : int {

[System.Runtime.Serialization.EnumMemberAttribute()]
GENERIC = 0,

[System.Runtime.Serialization.EnumMemberAttribute()]
SYBASE = 1,

[System.Runtime.Serialization.EnumMemberAttribute()]
SQL_SERVER = 2,

[System.Runtime.Serialization.EnumMemberAttribute()]
ORACLE = 3,
}


[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3082")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://somenamespace")]
public enum SqlDialect {
GENERIC,
SYBASE,
SQL_SERVER,
ORACLE,
}

生成的 C# 代码无法编译:

The namespace 'somenamespace' already contains a definition for 'SqlDialect'

我会感激任何想法......

最佳答案

我发现是什么“让”Visual Studio 生成重复的代理类...我们的 Web 服务数据模型是多态的并使用抽象类 - 这本质上就是我们使用 Aegis 数据绑定(bind)的原因。 如果层次结构中存在多个抽象类,Visual Studio 将生成重复的代理。

例如,在此 Web 服务契约(Contract)中:

AbstractRestrictionDef getRestriction(...parameters...)

这些类不起作用:

abstract class AbstractModelObject -– abstract class AbstractRestrictionDef –- class SqlRestrictionDef

但是这些类会:

abstract class AbstractModelObject -– class AbstractRestrictionDef -– class ParsedRestrictionDef

关于c# - 为 Java 类型生成重复的 C# Web 服务代理类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1472300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com