TypeName

ConstructorSummaryDocumentationMustBeginWithStandardText

CheckId

SA1642

Category

Documentation Rules

Cause

The Xml documentation header for a C# constructor does not contain the appropriate summary text.

Rule Description

C# syntax provides a mechanism for inserting documentation for classes and elements directly into the code, through the use of Xml documentation headers. For an introduction to these headers and a description of the header syntax, see the following article: http://msdn.microsoft.com/en-us/magazine/cc302121.aspx.

A violation of this rule occurs when the summary tag within the documentation header for a constructor does not begin with the proper text.

The rule is intended to standardize the summary text for a constructor based on the access level of the constructor. The summary for a non-private instance constructor must begin with “Initializes a new instance of the {class name} class.” For example, the following shows the constructor for the Customer class.

    /// <summary>

    /// Initializes a new instance of the Customer class.

    /// </summary>

    public Customer()

    {

    }

 

It is possible to embed other tags into the summary text. For example:

    /// <summary>

    /// Initializes a new instance of the <see cref="Customer"/> class.

    /// </summary>

    public Customer()

    {

    }

If the class contains generic parameters, these can be annotated within the cref link using either of the following two formats:

    /// <summary>

    /// Initializes a new instance of the <see cref="Customer`1"/> class.

    /// </summary>

    public Customer()

    {

    }

 

    /// <summary>

    /// Initializes a new instance of the <see cref="Customer{T}"/> class.

    /// </summary>

    public Customer()

    {

    }

If the constructor is static, the summary text should begin with “Initializes static members of the {class name} class.” For example:

    /// <summary>

    /// Initializes static members of the Customer class.

    /// </summary>

    public static Customer()

    {

    }

Private instance constructors must use the summary text “Prevents a default instance of the {class name} class from being created.”

    /// <summary>

    /// Prevents a default instance of the Customer class from being created.

    /// </summary>

    private Customer()

    {

    }

How to Fix Violations

To fix a violation of this rule, edit the summary text for the constructor as described above.