.NET 4.0 Code Contracts – Must use the rewriter when using Contract.Requires<TException>
Für ein paar Beispiele möchte ich die Code Contracts intensiver nutzen, damit ich eine bessere Routine bekomme. Das erste Mal stand ich an, als ich Argumente einer Methode auf null prüfen wollte, um im positiven Fall eine entsprechende Exception zu erzeugen.
Bisher war mein Ansatz so:
C# (throw Exception)
public virtual void Add (T entity)
{
If (entity == null)
{
throw new ArgumentNullException("entity", "The parameter entity is null.") ;
}
…
}
Zukünftig soll es bei mir so aussehen:
C# (Contract)
public virtual void Add (T entity)
{
Contract.Requires<ArgumentNullException>(entity != null, "The parameter entity is null");
…
}
Ich fand schnell den Hinweis, dass bei den Projekteigenschaften unter Code Contracts die Einstellung "Perform Runtime Contract Checking" auf "FULL" gestellt werden muss, nur in meinen Projekteigenschaften konnte ich diesen Reiter nicht finden.

- Abbildung 2 Projekteigenschaften mit fehlendem Reiter Code Contracts
Damit dieser Reiter mit aufgeführt wird, muss von den MS DevLabs mind. die Version 1.4.3 der Code Contracts heruntergeladen und installiert werden.
Nach erfolgreicher Installation muss dann nur noch die „Finish“-Schaltfläche geklickt werden.

- Abbildung 3 Erfolgreiche Installation
Damit diese Fehlermeldung nun nicht mehr erscheint, muss in der Projektmappe, welche die Contract-Definitionen enthält der Assembly Mode auf "Standard Contract Requries" und die Checkbox "Perform Runtime Contract Checking" auf "FULL" gesetzt werden. Mit dieser Anpassung ist der Fehler behoben.
- 0 Kommentar(e)




Mein Kommentar