URL でクエリ文字列を送信するためにUri.EncodeDataStringを使用しています。元の文字列は次Photo($select=Name,Id)
のとおりです。VS2015 デバッガーで実行されている asp.net Web サービスでは、Uri.EncodeDataString が返されます:Photo(%24select%3DName%2CId)
ただし、VS2015 の Resharper テスト ランナーで実行されている NUnit テストでは、次の値が返されますPhoto%28%24select%3DName%2CId%29
。括弧のエンコーディングの違いに注意してください。
括弧が単体テストではエンコードされているのに、Web サービスではエンコードされていないのはなぜですか? Web サービスで括弧をエンコードする必要はありませんか? 私は .Net 4.6 で実行しているため、StackOverflow の他の場所で議論されている RFC 3986 の問題の影響を受けることはありません (ここ、ここ、ここ、およびネット上の他の多くの場所)。