1
なぜ私は "CodeContracts:おそらくヌル参照 'ストリーム'でメソッドを呼び出すのですか?"このコードサンプルでは?なぜContract.Ensures(Contract.Result <...>!= null)が動作しないのですか?
私はSystem.Contracts.dllでリフレクターを使用して、次の行は、HttpWebRequestのクラスのGetRequestStream()メソッドにありますので、私は求めていますpublic static void Test()
{
var request = (HttpWebRequest)HttpWebRequest.Create("some url");
Contract.Assume(request != null);
var stream = request.GetRequestStream();
stream.Flush(); // WARNING IN THIS LINE
}
:方法がないので、契約が無視されていることを
public virtual Stream GetRequestStream()
{
Contract.Ensures(Contract.Result<Stream>() != null, null, "Contract.Result<System.IO.Stream>() != null");
}
私はこれを複製でき、バグのようです。コード契約フォーラムで質問することができます:http://social.msdn.microsoft.com/Forums/en-NZ/codecontracts/threads – porges