CA1017: Assemblys mit ComVisibleAttribute markieren
TypeName |
MarkAssembliesWithComVisible |
CheckId |
CA1017 |
Kategorie |
Microsoft.Design |
Unterbrechende Änderung |
Nicht unterbrechend |
Ursache
Auf eine Assembly wird das System.Runtime.InteropServices.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