Request.InputStream から POST 本文を読み取る WebApi コントローラーの単体テストを作成しています。HttpContext.Current.Request.InputStream の入力ストリーム プロパティを設定するか、入力ストリームの内容を設定する必要があります。これまでの単体テスト コードは次のとおりですが、例外がスローされ続けます。
var originalStream = HttpContext.Current.Request.InputStream;
Stream newStream = new MemoryStream(ASCIIEncoding.Default.GetBytes("Test String"));
var propInfo = originalStream.GetType().GetProperty("CanWrite");
propInfo.SetValue(originalStream, true);
newStream.CopyTo(originalStream);
propInfo.SetValue(originalStream, false);
SetValue 行で次の例外が発生します。
ArgumentException: Property set method not found
私はこれについてすべて間違っていますか?コントローラーは入力ストリームを読み取り、それを JSON に逆シリアル化するため、そのストリームにデータを挿入できる必要があります。私はそれを行う方法がわかりません。どうもありがとう。