Freigeben über


CA1409: Für COM sichtbare Typen müssen erstellt werden können

TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

Kategorie

Microsoft.Interoperability

Unterbrechende Änderung

Nicht unterbrechend

Ursache

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

Regelbeschreibung

Ein Typ ohne ö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 sind.

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

Behandeln 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

CA1017: Assemblys mit ComVisibleAttribute markieren

Siehe auch

Konzepte

Qualifizieren von .NET-Typen für die Interoperation

Weitere Ressourcen

Interoperation mit nicht verwaltetem Code