CA1411: I metodi di registrazione COM non devono essere visibili

Articolo Valore
ID regola CA1411
Category Microsoft.Interoperability
Modifica Interruzione

Causa

Un metodo contrassegnato con System.Runtime.InteropServices.ComRegisterFunctionAttribute o l'attributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute è visibile esternamente.

Descrizione regola

Quando un assembly viene registrato con Component Object Model (COM), le voci vengono aggiunte al Registro di sistema per ogni tipo visibile com nell'assembly. I metodi contrassegnati con gli ComRegisterFunctionAttribute attributi e ComUnregisterFunctionAttribute vengono chiamati rispettivamente durante i processi di registrazione e annullamento della registrazione per eseguire il codice utente specifico per la registrazione o l'annullamento della registrazione di questi tipi. Questo codice non deve essere chiamato all'esterno di questi processi.

Come correggere le violazioni

Per correggere una violazione di questa regola, modificare l'accessibilità del metodo in private o internal (Friend in Visual Basic).

Quando eliminare gli avvisi

Non escludere un avviso da questa regola.

Esempio

Nell'esempio seguente vengono illustrati due metodi che violano la regola.

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: I metodi di registrazione COM devono corrispondere

Vedi anche