2012-12-27 39 views
2

很奇怪的情景剛好跟我WCF後用JSON

當我嘗試東西發佈到WCF方法,這東西具有\ R作爲兩個單獨的字符其實我送「域\機」 WCF。

奇怪的是,該機的名稱爲R開頭,所以我發送字符串是 「域\ R * *」因此,當WCF接收它,它asssumes我想給它代表換行符\ r所以用單個字符替換它。任何提示如何避免這種情況?

這是函數簽名

[OperationContract] 
[WebInvoke(Method = "POST", 
RequestFormat = WebMessageFormat.Json, 
ResponseFormat = WebMessageFormat.Json, 
BodyStyle = WebMessageBodyStyle.Bare, 
UriTemplate = "json/listServer")] 
Response ListShares(Request request); 

請求是僅具有一個數據成員服務器名稱是字符串類型的數據合同類。

+2

你知道如何逃避特殊字符嗎?這就是所有你需要做的.. –

+0

我發送「我的域名\\ relativemachine」,並張貼此爲Web方法 中,我發現了調試器的WCF方法獲得「我的域名\ relativemachine」,因爲它轉換\\ R,它是\ r這是一個字符的兩個字符 –

+0

嘗試使用''domain \\ r「'或'@」domain \ r「。 – Dan

回答

-1

因爲某些未知的原因,在POST方法中發送\ WCF Web方法,您需要將其發送爲\\\\,因爲WCF端的JSON解析器將嘗試查找任何轉義字符後面的!