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