Condividi tramite


CA1410: I metodi di registrazione COM devono corrispondere

Articolo Valore
ID regola CA1410
Category Microsoft.Interoperability
Modifica Nessuna interruzione

Causa

Un tipo dichiara un metodo contrassegnato con l'attributo System.Runtime.InteropServices.ComRegisterFunctionAttribute ma non dichiara un metodo contrassegnato con l'attributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute o viceversa.

Descrizione regola

Affinché i client COM (Component Object Model) creino un tipo .NET, il tipo deve prima essere registrato. Se disponibile, viene chiamato un metodo contrassegnato con l'attributo ComRegisterFunctionAttribute durante il processo di registrazione per eseguire il codice specificato dall'utente. Durante il processo di annullamento della registrazione viene chiamato un metodo corrispondente contrassegnato con l'attributo ComUnregisterFunctionAttribute .

Come correggere le violazioni

Per correggere una violazione di questa regola, aggiungere il metodo di registrazione o annullamento della registrazione corrispondente.

Quando eliminare gli avvisi

Non escludere un avviso da questa regola.

Esempio

Nell'esempio seguente viene illustrato un tipo che viola la regola. Il codice commentato mostra la correzione per la violazione.

using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
   public class ClassToRegister
   {
   }

   public class ComRegistration
   {
      [ComRegisterFunction]
      internal static void RegisterFunction(Type typeToRegister) {}

//      [ComUnregisterFunction]
//      internal static void UnregisterFunction(Type typeToRegister) {}
   }
}

CA1411: I metodi di registrazione COM non devono essere visibili

Vedi anche