CA1017: Assemblys mit ComVisibleAttribute markieren

TypeName

MarkAssembliesWithComVisible

CheckId

CA1017

Kategorie (Category)

Microsoft.Design

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Auf eine Assembly wird das ComVisibleAttribute-Attribut nicht angewendet.

Regelbeschreibung

Das ComVisibleAttribute-Attribut bestimmt, wie COM-Clients auf verwalteten Code zugreifen.Gute Entwurfsprinzipien verlangen, dass die COM-Sichtbarkeit durch Assemblys explizit angegeben wird.Die COM-Sichtbarkeit kann für eine gesamte Assembly festgelegt und anschließend für einzelne Typen und Typmember überschrieben werden.Wenn das Attribut fehlt, ist der Inhalt der Assembly für COM-Clients sichtbar.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie der Assembly das Attribut hinzu.Wenn die Assembly für COM-Clients nicht sichtbar sein soll, wenden Sie das Attribut an, und legen Sie seinen Wert auf false fest.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel.Wenn die Assembly sichtbar sein soll, wenden Sie das Attribut an, und legen Sie seinen Wert auf true fest.

Beispiel

Das folgende Beispiel zeigt eine Assembly mit dem ComVisibleAttribute-Attribut, das verhindert, dass die Assembly für COM-Clients sichtbar ist.

Imports System

<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
using System;

[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}
using namespace System;

[assembly: System::Runtime::InteropServices::ComVisible(false)];
namespace DesignLibrary {}

Siehe auch

Konzepte

Qualifizieren von .NET-Typen für die Interoperation

Weitere Ressourcen

Interoperation mit nicht verwaltetem Code