2013-03-18 13 views
15

Ich benutze ReSharper in meinen C# -Projekten und im Allgemeinen ich liebe es. Bei bestimmten Refactoring-Aktionen werden jedoch immer wieder Anmerkungen zum Code hinzugefügt.Stop ReSharper von Hinzufügen von Anmerkungen

Zum Beispiel ist es [NotNull] hinzufügt, wenn ich die „Parameter Check für null“ verwenden Aktion Kontext:

// Before context action 
public void Foo(object input) 
{ 
} 

// After context action 
public void Foo([NotNull] object input) 
{ 
    if (input == null) 
    { 
     throw new ArgumentNullException("input"); 
    } 
} 

Zusätzlich ReSharper fügt dann using JetBrains.Annotations in die Datei, auch wenn ich nicht die JetBrains Montage bin Referenzierung wo das Attribut definiert ist.

Ich möchte weiterhin die Kontextaktionen verwenden, da sie sehr nützlich sind, aber ich kann keine externen Anmerkungen in den Code einfügen. ReSharper bietet eine Option zum Ändern des Standardannotationsnamespace und zum Kopieren des Quellcodes des Anmerkungsattributs in Ihr Projekt. Dies ist jedoch auch keine Option für dieses Projekt.

Gibt es eine Möglichkeit, ReSharper zu sagen, keine Annotationen mehr hinzuzufügen? Ich habe versucht, in den Optionen JetBrains.Annotations als Namespace mit Code-Annotationsattributen zu deaktivieren, aber das scheint keine Auswirkung darauf zu haben, ob die Annotationen überhaupt generiert werden.

Update: Während ich nicht wirklich war JetBrains.Annotations.dll Referenzierung ich eine weitere DLL wurde Referenzierung, die implementierter wieder die gleiche Anmerkung Attribute in der gleichen JetBrains.Annotations Namespace. Das Entfernen dieser DLL-Referenz verhindert, dass ReSharper die Anmerkungen hinzufügt. Es wäre schön, wenn es noch eine Option gäbe, um das auszuschalten, aber das Workaround passt für diese Situation.

+1

NLog war die DLL, die mir Probleme verursacht. Ich kann es nicht entfernen, deshalb habe ich die Annotationen zu unserem Root-Namespace hinzugefügt, weil das Leben ohne ReSharper überhaupt nicht lebt. –

+0

Empfehlen Sie dringend die Verwendung von Anmerkungen. –

Antwort

6

Wenn Sie die JetBrains.Annotations.dll verweisen, die Standardaktion für „Überprüfen Sie Parameter für null“ scheint das NotNull Attribut zu verwenden, um zu sein (trotz Zugabe eines „Beschriften mit‚NotNullAttribute‘“ -Option.

Die einzige Lösung, die ich kenne, ist zu verweisen nicht JetBrains.Annotations.dll

Update:.

mehr in diese suchen, es scheint, dass es einen Vorschlag/Fehler war, die hinzugefügt werden [NotNull], wenn die Anmerkungen dLL enthalten ist und „Check Parameter für null "wird angefordert: http://youtrack.jetbrains.com/issue/RSRP-70350 Falls jemand anderes über dieses passiert und sich fragt warum ...

+1

danke! Ich habe JetBrains.Annotations.dll nicht referenziert, aber ich referenzierte eine andere DLL, die alle die gleichen Attribute in demselben Namespace neu definiert hatte. Wenn Sie dies entfernen, beendet ReSharper das Hinzufügen des Attributs. –

Verwandte Themen