我正在构建一个RESTful服务,当请求中包含xmlns属性时,该服务可以正常工作。但是,我需要使服务能够在没有xmlns属性的情况下接受请求。
这就是我现在所做的工作:
<ITEM_SEND xmlns="http://schemas.datacontract.org/2004/07/WCFInventoryService">
<TRAN_ID>9483564</TRAN_ID>
<VENDOR_PART>D336</VENDOR_PART>
</ITEM_SEND>
这是我需要接受的请求:
<ITEM_SEND>
<TRAN_ID>9483564</TRAN_ID>
<VENDOR_PART>D336</VENDOR_PART>
</ITEM_SEND>
这是我的界面:
namespace WCFInventoryService
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract(Namespace = "")]
public interface IInvService
{
[OperationContract]
//[WebGet(UriTemplate="/Employees",ResponseFormat=WebMessageFormat.Xml )]
//Employee[] GetEmployees();
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "")]
ITEM_REPLY GetInventory(ITEM_SEND query);
}
public class ITEM_SEND
{
public string TRAN_ID { get; set; }
public string VENDOR_PART { get; set; }
}
}
我尝试通过将其设置为&#34;&#34;来改变我对我的请求的数据合同的命名空间。
[DataContract(Namespace = "")]
public class ITEM_SEND
{
public string TRAN_ID { get; set; }
public string VENDOR_PART { get; set; }
}
答案 0 :(得分:2)
您可以明确定义您的数据协定不属于任何命名空间 -
[DataContract(Namespace = "")]
public class ITEM_SEND
{
[DataMember]
public string TRAN_ID { get; set; }
[DataMember]
public string VENDOR_PART { get; set; }
}
希望这有帮助