我在使用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
答案 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
{
}
答案 1 :(得分:0)
使用
[DataContract(Name="...", Namespace="http://company.com/schema/series/"]