我的WCF Web服务请求有一个DataContract元素,如下所示:
[DataContract]
public sealed class Request
{
public int EventID { get; set; }
}
我的网络服务运行后,我从wsdl生成的请求如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:EventDismissRequest>
<tem:request/>
</tem:EventDismissRequest>
</soapenv:Body>
</soapenv:Envelope>
但是,我希望它如下所示,这意味着我的事件id嵌套在没有tem前缀的请求元素中。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:EventDismissRequest>
<request>
<EventID>?</EventID>
<request>
</tem:EventDismissRequest>
</soapenv:Body>
</soapenv:Envelope>
我想我必须在我的datacontract中做一些xml属性,但有很多选项,我尝试了很多方法但没有成功。
答案 0 :(得分:1)
我认为您需要的属性是[Serializable],如下所示,以及您希望序列化的每个项目的[DataMember]。
[DataContract]
[Serializable]
public sealed class Request
{
[DataMember]
public int EventID { get; set; }
}