Freigeben über


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) {}
   }
}

CA1410: Die COM-Registrierungsmethoden müssen übereinstimmen.

Siehe auch