生成wsdl时出现问题

时间:2012-08-03 11:32:30

标签: c# wcf

我在使用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被赋予一个externel,系统可以从java客户端进行互操作。

谢谢, -Mike

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用

[DataContract(Name="...", Namespace="http://company.com/schema/series/"]