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