I metodi di registrazione COM non devono essere visibili
Aggiornamento: novembre 2007
TypeName |
ComRegistrationMethodsShouldNotBeVisible |
CheckId |
CA1411 |
Categoria |
Microsoft.Interoperability |
Breaking Change |
Breaking |
Causa
Un metodo contrassegnato con l'attributo System.Runtime.InteropServices.ComRegisterFunctionAttribute o System.Runtime.InteropServices.ComUnregisterFunctionAttribute è visibile esternamente.
Descrizione della regola
Quando un assembly viene registrato con COM, vengono aggiunte voci al Registro di sistema per ciascuno dei tipi visibili a COM presenti nell'assembly. I metodi contrassegnati con gli attributi ComRegisterFunctionAttribute e ComUnregisterFunctionAttribute vengono chiamati rispettivamente durante i processi di registrazione e annullamento della registrazione, per eseguire il codice utente specifico di registrazione/annullamento della registrazione di tali tipi. Il codice non dovrebbe essere chiamato al di fuori di tali processi.
Correzione delle violazioni
Per correggere una violazione della regola, modificare l'accessibilità del metodo in private o internal (Friend in Visual Basic).
Esclusione di avvisi
Non escludere un avviso da questa regola.
Esempio
Nell'esempio riportato di seguito vengono illustrati due metodi che violano la regola.
Imports System
Imports System.Runtime.InteropServices
<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary
Public Class ClassToRegister
End Class
Public Class ComRegistration
<ComRegisterFunctionAttribute> _
Public Shared Sub RegisterFunction(typeToRegister As Type)
End Sub
<ComUnregisterFunctionAttribute> _
Public Shared Sub UnregisterFunction(typeToRegister As Type)
End Sub
End Class
End Namespace
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) {}
}
}
Regole correlate
I metodi di registrazione COM devono corrispondere
Vedere anche
Concetti
Registrazione di assembly presso COM