The following properties are available in the Visibility category. These control what appears in the help file and can reduce the help content and get rid of unwanted items, especially when documenting internal and private members. Information is written to the log file detailing how each property affected the build.

Note

Known Limitations

Many of the properties starting with "Document" are applied after the MRefBuilder tool runs. When the DocumentInternals and/or DocumentPrivates options are set to true, setting one or more of the DocumentInherited* options to false may increase the build time on help files with a large number of topics. If you find that the Applying visibility properties step of the build is taking a very long time, you can set these options to true and use the ApiFilter project option to remove the unwanted members. This is generally much more efficient as MRefBuilder removes the items as it is generating the reflection information file. This also applies to some of the other properties in this category. The trade-off is that you must search for and exclude the items manually in the API filter search dialog box.

ApiFilter

This property represents a collection of items that define an API filter for the MRefBuilder tool. The items in this filter define which elements of a namespace or type should be omitted from the generated reflection information file and thus the resulting help file. This is useful for excluding unwanted types and members, especially those generated by the compiler, and inherited base class members. Namespaces excluded in the NamespaceSummaries property and items containing an <exclude /> tag are automatically added to the API filter at build time. If there is a conflict between these items and the API filter, the API filter will take precedence and a warning is written to the log file to note the conflict. See the API Filter Property topic for more details on how to use this property.

DocumentAttributes

When set to false, the default, the help builder will strip all attribute information from the documented items so that they do not appear in the syntax section of each class, property, method, etc. in the compiled help file. When set to true, the attribute information is left intact and will appear in the help file. The attributes ExtensionAttribute, FlagsAttribute, SerializableAttribute, ObsoleteAttribute, and several special attributes used by AjaxDoc and Script# are always included regardless of this property's setting as they provide important information about the types and members to which they are applied or are used by other components such as the syntax generators.

DocumentExplicitInterfaceImplementations

When set to false, the default, explicit interface implementations are removed from the help file. This includes explicit implementations in base classes so that they do not appear in the class members help pages. Set this property to true to include them in the help file.

DocumentInheritedFrameworkInternalMembers

When set to false, the default, all inherited .NET Framework members that have internal (Friend) visibility (any internal members starting with "System." or "Microsoft.") are removed from the class members help pages. This can be useful when documenting internal or private members to help reduce clutter. For this option to work, DocumentInheritedFrameworkMembers and DocumentInternals must also be set to true. When this property is set to true, internal framework members are included.

DocumentInheritedFrameworkMembers

When set to true, the default, all inherited .NET Framework members of the class (any members starting with "System." or "Microsoft.") are listed in the class members help pages. When set to false, all inherited .NET Framework class members are removed from the class members help pages. This can be useful when documenting internal or private members to help reduce clutter. For this option to work, DocumentInheritedMembers must also be set to true. When it is set to false, all framework members are removed.

DocumentInheritedFrameworkPrivateMembers

When set to false, the default, all inherited .NET Framework members that have private visibility (any private members starting with "System." or "Microsoft.") are removed from the class members help pages. This can be useful when documenting internal or private members to help reduce clutter. For this option to work, DocumentInheritedFrameworkMembers and DocumentPrivates must also be set to true. When this property is set to true, private framework members are included.

DocumentInheritedMembers

When set to true, the default, all inherited members of the class are listed in the class members help page. When set to false, all inherited members including inherited .NET Framework class members are removed from the class members help pages. This can be useful when documenting internal or private members to help reduce clutter.

DocumentInternals

When set to false, the default, the help builder will not document any internal (Friend) members of classes in the documentation assemblies. When true, the help builder will add the /internal+ command line option to MRefBuilder so that it does include documentation for internal class members. Because they share a similar visibility, protected internal members will be left in the help file when this is set to true even if the DocumentProtected property is set to false. Also note that this property works independently of the DocumentPrivates property below.

DocumentPrivateFields

When set to false, the default, the help builder will not document any private fields of classes in the documentation assemblies. Since most private fields back properties or represent items such as controls on forms, they usually do not have comments and can significantly clutter the resulting help file with unwanted entries. Leaving this option set to false can eliminate the problem. When set to true, the private fields are included in the help file. To work, the DocumentPrivates property must also be set to true.

DocumentPrivates

When set to false, the default, the help builder will not document any private members of classes in the documentation assemblies. When true, the help builder will add the /internal+ command line option to MRefBuilder so that it does include documentation for private class members. Also note that this property works independently of the DocumentInternals property above.

DocumentProtected

When set to true, the default, the help builder will document all protected and protected internal members of classes in the documentation assemblies. When false, the help builder will remove them from the help file including those inherited from base .NET framework classes (those starting with "System." and "Microsoft."). Because they share a similar visibility, protected internal members will be left in the help file when the DocumentInternals property is set to true even if this property is set to false.

DocumentProtectedInternalAsProtected

When set to false, the default, the help builder will document all protected internal members of classes in the documentation assemblies without modification. When true, the help builder will alter protected internal members so that they are listed as protected only in the help file. If DocumentProtected is set to false, this option is ignored.

DocumentSealedProtected

When set to true, the default, the help builder will document all protected members of sealed classes in the documentation assemblies. When false, the help builder will remove all protected members from sealed classes so that they do not appear in the help file. To work, the DocumentProtected property must also be set to true.

See Also