CA1411: Die COM-Registrierungsmethoden dürfen nicht sichtbar sein.
Element | Wert |
---|---|
RuleId | CA1411 |
Category | Microsoft.Interoperability |
Unterbrechende Änderung | Breaking |
Ursache
Eine Methode, die mit dem System.Runtime.InteropServices.ComRegisterFunctionAttribute- oder System.Runtime.InteropServices.ComUnregisterFunctionAttribute-Attribut gekennzeichnet ist, ist extern sichtbar.
Regelbeschreibung
Wenn eine Assembly beim Component Object Model (COM) registriert wird, werden der Registrierung für jeden COM-sichtbaren Typ in der Assembly Einträge hinzugefügt. Methoden, die mit den Attributen ComRegisterFunctionAttributeund ComUnregisterFunctionAttribute gekennzeichnet sind, werden während der Registrierung bzw. Aufhebung der Registrierung aufgerufen, um Benutzercode auszuführen, der für die Registrierung/Aufhebung der Registrierung dieser Typen spezifisch ist. Dieser Code sollte nicht außerhalb dieser Prozesse aufgerufen werden.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, ändern Sie die Zugriffsmöglichkeiten der Methode in private
oder internal
(Friend
in Visual Basic).
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.
Beispiel
Das folgende Beispiel zeigt zwei Methoden, die gegen die Regel verstoßen.
using System;
using System.Runtime.InteropServices;
[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
public class ClassToRegister
{
}
public class ComRegistration
{
[ComRegisterFunction]
public static void RegisterFunction(Type typeToRegister) {}
[ComUnregisterFunction]
public static void UnregisterFunction(Type typeToRegister) {}
}
}
Ähnliche Regeln
CA1410: Die COM-Registrierungsmethoden müssen übereinstimmen.
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für