我需要能够将XML作为字符串传递给RESTFul WCF服务,但是我很难这样做。有人可以告诉我怎么做到这一点?它必须作为字符串发送,我不能将其包装在数据合同等中。下面的服务合同示例
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "lookup",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
Stream LookupPostcode(string requestXml);
非常感谢提前
答案 0 :(得分:1)
答案 1 :(得分:1)
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "lookup",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
Stream LookupPostcode(Stream requestXml);
...
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "lookup",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
Stream LookupPostcode(XElement requestXml);
...不确定你在方法内部尝试做什么,或者我可以提供更多帮助。
答案 2 :(得分:0)
这是一个主要的黑客,但你可以将XML包装在这样的<string>
标签内。
XmlDocument body = new XmlDocument();
body.Load(...);
postData = @"<string xmlns='http://schemas.microsoft.com/2003/10/Serialization/'><![CDATA[" + body.OuterXml + "]]></string>";
答案 3 :(得分:0)
在CDATA标记中包装xml会阻止解析器将其视为xml:
myString = "<![CDATA[<thexml/>]]>"