簡體   English   中英

WCF IDispatchMessageInspector 如何修復傳入的xml?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM