2

非常に奇妙なシナリオが私に起こります

何かを WCF メソッドに投稿しようとすると、これに \r が 2 つの個別の文字として含まれいる場合、実際には "domain\machine" を WCF に送信します。

奇妙なことに、マシン名は R で始まるため、送信する文字列は「domain\r* *」であるため、WCF がそれを受信すると、改行文字を表す \r を送信すると想定され、1 文字に置き換えられます。 . これを回避するためのヒントはありますか?

これは関数シグネチャです

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

Request は、文字列型のデータ メンバー ServerName を 1 つだけ持つデータ コントラクト クラスです。

4

1 に答える 1

-1

WCF Web メソッドへの POST メソッドで \ を送信する不明な理由により、\\\\ として送信する必要があります。これは、WCF 側の JSON パーサーがそれに続くエスケープ文字を見つけようとするためです!!

于 2012-12-27T22:37:22.350 に答える