Freigeben über


Für COM sichtbare Typen sollten erstellbar sein

Aktualisiert: November 2007

     TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

Kategorie

Microsoft.Interoperability

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Ein Verweistyp, der speziell als für COM sichtbar gekennzeichnet ist, enthält einen öffentlichen parametrisierten Konstruktor, jedoch keinen öffentlichen (parameterlosen) Standardkonstruktor.

Regelbeschreibung

Ein Typ ohne einen öffentlichen Standardkonstruktor kann nicht von COM-Clients erstellt werden. COM-Clients können dennoch auf den Typ zugreifen, wenn der Typ auf andere Weise erstellt und an den Client übergeben werden kann, z. B. durch den Rückgabewert eines Methodenaufrufs.

Die Regel ignoriert Typen, die von System.Delegate abgeleitet werden.

Standardmäßig sind für COM folgende Elemente sichtbar: Assemblys, öffentliche Typen, öffentliche Instanzmember in öffentlichen Typen sowie alle Member von öffentlichen Werttypen.

Behandlung von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie einen Standardkonstruktor hinzu, oder entfernen Sie das System.Runtime.InteropServices.ComVisibleAttribute von dem Typ.

Wann sollten Warnungen unterdrückt werden?

Eine Warnung dieser Regel kann gefahrlos unterdrückt werden, wenn es andere Möglichkeiten gibt, das Objekt zu erstellen und an den COM-Client zu übergeben.

Verwandte Regeln

Markieren von Assemblys mit dem ComVisible-Attribut

Siehe auch

Konzepte

Qualifizieren von .NET-Typen für die Interoperation

Weitere Ressourcen

Interaktion mit nicht verwaltetem Code