2010-12-22 16 views
2

我使用.NET中的內置SOAP支持,通過Visual Studio從WSDL生成的包裝類。
現在,當我調用包裝器上的其中一個方法並傳遞一個包含CRLF字符串(\r\n)的對象時,服務器上將只有LF(\n)。反之亦然。當服務器發送一個包含CRLF的字符串時,包裝將只會吐出LF。如何防止.Net SOAP序列化進食NewLines

我知道這是一個通常可以通過向XmlSerializer提供自己的XmlWriter來避免的問題,但是我找不到可以在提供的框架中指定類似內容的地方。

我幾乎想要使用this thread中提供的RegEx解決方案,但我很難相信沒有任何措施可以防止此問題。

回答

2

僅僅爲了完整起見,我沒有找到提供我所需的解決方案。因此,針對我的案例的最佳解決方案是在this answer中提出的解決方案。

0

here

XmlWriterSettings ws = new XmlWriterSettings(); 
    ws.NewLineHandling = NewLineHandling.Entitize; 

    XmlSerializer ser = new XmlSerializer(typeof(Abc)); 
    using (XmlWriter wr = XmlWriter.Create("abc.xml", ws)) 
    { 
     ser.Serialize(wr, s); 
    } 
+0

我知道通用XML序列化的解決方案。但在這種情況下,我不是那個正在做序列化的人。它發生在.Net框架內部。所以我沒有看到我可以提供自定義XmlWriterSettings的地方。 – 2010-12-22 14:03:08

相關問題