問題タブ [microsoft-contracts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - コード コントラクトを使用して、メソッドが決して null を返さないことを示すにはどうすればよいですか?
メソッドが決して null を返さないことを示すにはどうすればよいですか? 現在、これは私のコードです。
19 行目では、CreateFunction が結果が何もないことを想定していても、Ensures が証明されていないというメッセージが表示されます。
c# - ReSharper-Microsoft.Contractsを使用するときにヌル割り当てが発生する可能性があります
契約による設計がチェックを必要とするためにnull参照が発生しないことをReSharperに示す方法はありますか?たとえば、次のコードは、Possible 'null' assignment to entity marked with 'NotNull' attribute
7行目と8行目のReSharperで警告()を発生させます。
本当に奇妙なのは、Contract.Requires(...)
行を削除すると、ReSharperメッセージが消えることです。
アップデート
私はExternalAnnotationsを通じて解決策を見つけました。これは、以下のMikeによっても言及されています。これは、Microsoft.Contractsの関数に対してこれを行う方法の例です。
- ReSharperディレクトリ
Microsoft.Contracts
の下にというディレクトリを作成します。ExternalAnnotations
- 次に、というファイルを作成し、次の
Microsoft.Contracts.xml
ように入力します。
- Visual Studioを再起動すると、メッセージが消えます。
.net - Microsoft Contracts: アセンブリの読み込みにより、メタデータのインポートに関する警告が表示されました
Microsoft Code Contractsライブラリの使い方を学ぼうとしていますが、次の単純な機能があります。
これをコンパイルしようとすると、契約の静的コンパイラは次の警告メッセージをスローします。
そしてすぐにあきらめます (そして、それ以上の契約処理を行おうとはしません)。設定するコードを削除するとDefaultToolsVersion
、コントラクト検証ツールは正しく機能しますが、コードが正しくなくなるため、これはかなり無意味です。
Googleでこれについての言及が見つかりません...これを修正できる方法はありますか、それとも契約ライブラリの単なるバグですか? (もちろん発売前の状態です)
ありがとう
c# - コード コントラクトのイテレータにバグがありますか?
次のコードは前提条件で失敗します。これはコード コントラクトのバグですか?
asp.net - Can Microsoft Code Contracts be used with an ASP.NET Website?
I'm currently using Microsoft Code Contracts in an ASP.NET MVC application without any issues but I can not seem to get it quite running in a basic ASP.NET Web site. I'm not entirely sure it was made to work with this type of project (although it shouldn't matter) so I wanted to bring it up to everyone.
I can compile the contracts just fine but the code skips over them since I'm assuming it hasn't been enabled through the Properties Page like you would do in other project types (ie ASP.NET MVC). I've gone to the property page of the project (which displays a dialog instead of the typical properties page) in my ASP.NET web site but it does not yield the same menu options and as such, doesn't have a section devoted to Code Contracts.
Also, I have Microsoft Code Contracts properly enabled within a class library project that I use to separate my business logic from the web site. The contracts compile fine but when a contract is violated, it throws a rather uninformative "Exception of type 'System.ExecutionEngineException' was thrown"
error with no inner exception. My contract specifies a message to display upon violation but it is nowhere within the exception. It simply halts the execution of the process (which I believe is the default functionality for Microsoft Code Contracts).
I can't find anywhere that explicitly states that a particular project type can or can't (or shouldn't) be used with Contracts so I just wanted to see if anyone has had this issue.
Thanks for any help!
c# - CodeContracts: this() 呼び出しを使用して Ctor で Require を満たす方法は?
Microsoft の CodeContracts をいじっていて、解決できない問題に遭遇しました。2 つのコンストラクターを持つクラスがあります。
この例は簡略化されています。2 番目のコンストラクターが > 0 であることを確認する方法がわかりませんf
。これはコントラクトでも可能ですか?
c# - 契約による設計: プロトコルを備えたインターフェイスを使用できますか?
私は Design by Contract の概念にかなり慣れていませんが、今のところ、潜在的なバグを簡単に見つけられる点が気に入っています。
ただし、Microsoft.Contracts ライブラリ (これは非常に優れています) を使用して作業しており、障害に遭遇しました。
私がやろうとしていることのこの単純化された例を見てください:
要約すると、プラグインが従うインターフェイスを宣言し、状態を宣言するように要求し、任意の状態で呼び出すことができるものを制限しています。
これは、静的検証とランタイム検証の両方で、呼び出しサイトで機能します。Reset
しかし、私が得続ける警告は、関数と関数の両方に対して「契約:証明されていないことを保証します」ですPrepare
。
私は s を試してみましたが、制約Invariant
を証明するのに役立つとは思われません。Ensures
インターフェイスを介して証明する方法についてのヘルプは役に立ちます。
EDIT1:
これを MyAwesomePlugin クラスに追加すると:
IPlugin としての状態が私のプライベート状態と同じであることをほのめかそうとすると、同じ警告が表示され、さらに「private int? number = null」行が不変条件を証明できないという警告が表示されます。
それが静的コンストラクターの最初の実行可能行であることを考えると、なぜそう言うのかがわかりますが、それが ? を証明しないのはなぜEnsures
ですか?
EDIT2
でマークState
する[ContractPublicPropertyName("State")]
と、「'MyNamespace.State' 型の 'State' という名前のパブリック フィールド/プロパティが見つかりません」というエラーが表示されます。
これは私をより近づけるはずですが、私はまだそこにいません。
.net - Team System なしで Microsoft.Contracts の静的チェッカーを使用できますか?
静的チェッカーを使用して Microsoft.Contacts をインストールできるという Visual Studio Team System の要件とは別に、チーム システムなしで静的チェッカーを実行することは可能ですか? それとも、スタジオのチーム システム コンポーネントによって公開されている API に依存していますか?
また、スタティックチェッカーをチームシステムのコンピュータからプロのコンピュータにコピーすることはライセンス内ですか?