[英]WCF IDispatchMessageInspector How to fix incoming xml?
在WCF服務中,我實現了IDispatchMessageInspector
接口。 在AfterReceiveRequest
方法中ref Message request
- 出現錯誤“讀取正文時:System.Xml.XmlException”。 出現這個錯誤是因為request中的XML出錯了。我無法影響request。
<data xsi:type="xsd:string"><?xml version="1.0" encoding="utf-8"?>
<someRequest>
<Number>Test</Number>
<Date>2023-01-09T00:00:00</Date>
</someRequest>
我正在嘗試修復
request.toString().Replace("<?xml version="1.0" encoding="utf-8"?>" ,"");
是否可以將 xml 正文作為文本獲取? 試過:
using (var reader = request.GetReaderAtBodyContents())
{
query string var = reader.ReadContentAsString();
}
var body = request.getBody<string>();
如果我實現IDispatchOperationSelector
接口。 該方法在AfterReceiveRequest
之前調用。 但是還有一個Message
參數
要讀取 xml 文件,可以使用 XmlDocument.InnerXml 來獲取它:
XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;
或者像這樣:
public string GetXMLAsString(XmlDocument myxml)
{
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);
string str = sw.ToString();//
return str;
}
得到它之后,然后擺脫你不需要的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.