ReSharper 2017.1 Help

Code Annotations

ReSharper | Options | Code Inspection | Code Annotations

This page of ReSharper options helps you obtain code annotation attribute classes as well as to make related configurations.

JetBrains Annotations - official NuGet package Click this link to go to the JetBrains ReSharper Annotations home page where you can obtain the annotations using NuGet.
Automatically propagate annotations If this check box is selected, some ReSharper features will automatically insert annotation attributes. For example, the 'Check parameter for null' context action will add the [NotNull] attribute in addition to generating code that checks for nullness.
Default annotation namespace Allows you to choose the namespace where ReSharper looks for code annotation types. This option may be helpful if you have the same annotation types in several namespaces. For more information, see Annotations in Source Code.
List of namespaces with code annotation attributes ReSharper automatically detects namespaces in the solution and referenced assemblies with valid annotation attribute types and displays the list of these namespaces, if any.

There may be cases when your solution contains several implementations of the annotation attributes, e.g., you have classes with the same names as ReSharper annotations classes (CanBeNullAttribute, NotNullAttribute, etc.) or you are using a third-party assembly that contains ReSharper annotation classes. In such cases, you can choose the namespace where ReSharper should look for the proper set of annotation attribute classes.

Annotations source code In this section, you can copy the whole implementation of the JetBrains.Annotations namespace to clipboard so that you can insert it in the desired place in your solution. Before copying the annotations, you can customize the classes in two ways:
  • CLick internal to make the annotations classes internal, i.e. only accessible within the module where you insert them.
  • Click conditional to add the [Conditional("JETBRAINS_ANNOTATIONS")] attribute to the classes. This will make the compiler ignore the annotation attributes in your code, which means that no binary reference to the 'JetBrains.Annotations.dll' assembly is produced. However, you can define 'JETBRAINS_ANNOTATIONS' conditional compilation symbol in your projects to preserve the attributes in metadata.
Last modified: 12 October 2017

See Also