【发布时间】:2014-02-27 14:46:51
【问题描述】:
我的 WCF Web 服务请求有一个 DataContract 元素,如下所示:
[DataContract]
public sealed class Request
{
public int EventID { get; set; }
}
一旦我的 Web 服务运行,我从 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>
我想我必须在我的数据合同中做一些 xml 属性,但是有很多选择,我尝试了很多方法但没有成功。
【问题讨论】:
-
你需要用
[DataMember]属性来装饰EventID。
标签: c# wcf datacontractserializer