0

我在使用 xml 命名空间为我的服务生成 WSDL 时遇到了问题。这是我的情况。

我有 3 个 xsd,并从中生成了一个对象图。该对象,可以说 Payload 是我的服务调用的参数,如下所示:

interface IService
{
  bool SendRequest(Payload payload)
}

我的 Payload 类具有如下属性:

    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
        [System.SerializableAttribute()]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://company.com/schema/series/2")]
        [System.Xml.Serialization.XmlRootAttribute("Payload", Namespace = "http://company.com/schema/series/2",
            IsNullable = false)]    
public class Payload
{
}

现在,当我查看我的 wsdl 时,它引用了有效负载类的 c# 命名空间。如何使用准确的模式命名空间生成正确的 wsdl?此 wsdl 被提供给外部,系统与 java 客户端互操作。

谢谢,-迈克

4

2 回答 2

0

您需要将有效负载标记为DataContract

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://company.com/schema/series/2")]
[System.Xml.Serialization.XmlRootAttribute("Payload", Namespace="http://company.com/schema/series/2",IsNullable = false)]   
[DataContract] 
public class Payload
{
}

请参阅http://msdn.microsoft.com/en-us/library/ms733127.aspx

于 2012-08-03T11:49:31.343 回答
0

采用

[DataContract(Name="...", Namespace="http://company.com/schema/series/"]
于 2012-08-03T13:31:13.063 回答