19.08.2010
22:41

.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");
    …
}

Nach der Anpassung in die Contract-Syntax begrüsste mich jedoch folgende Meldung:

Abbildung 1
Abbildung 1 Fehlermeldung Must use the rewriter...

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
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
Abbildung 3 Erfolgreiche Installation

Und endlich, der Reiter Code Contracts existiert in den Projekteigenschaften.

Abbildung 4
Abbildung 4 Projekteigenschaften mit Reiter "Code Contracts "

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

Über jeden weiteren Kommentar in diesem Post benachrichtigen.

Zurück

Translate this page

Kategorien

  • [-].NET Development (215)
  • [-]Datenbank (26)
  • HTML (1)
  • Konfiguration (12)
  • Mind Map (10)
  • Off-topic (9)
  • Open Source (3)
  • Qualität (7)
  • Sharepoint (6)
  • Sicherheit (2)

Archiv

Social Bookmarking

Bookmark bei: Mr. Wong Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Favoriten Bookmark bei: Seekxl Bookmark bei: Favit Bookmark bei: Social Bookmarking Tool Bookmark bei: Power Oldie Bookmark bei: Bookmarks.cc Bookmark bei: Newskick Bookmark bei: Newsider Bookmark bei: Linksilo Bookmark bei: Readster Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Digg Bookmark bei: Del.icio.us Bookmark bei: Reddit Bookmark bei: Simpy Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Netscape Bookmark bei: Furl Bookmark bei: Yahoo Bookmark bei: Spurl Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Blinkbits Bookmark bei: Ma.Gnolia Bookmark bei: Smarking Bookmark bei: Netvouz Information