CA1411: Metody registrace modelu COM by neměly být viditelné
Název_typu |
ComRegistrationMethodsShouldNotBeVisible |
CheckId |
CA1411 |
Kategorie |
Microsoft.interoperability |
Změnit rozdělení |
Rozdělení |
Příčina
Metoda, která je označena ComRegisterFunctionAttribute nebo ComUnregisterFunctionAttribute je atribut externě viditelné.
Popis pravidla
Při sestavení registraci pomocí modelu COM (Component Object), přidány položky registru pro každý typ COM viditelné v sestavení.Metody, které jsou označeny ComRegisterFunctionAttribute a ComUnregisterFunctionAttribute atributy jsou označovány během procesu registrace a zrušení registrace, spuštění uživatelského kódu specifické pro registrace/zrušení registrace těchto typů.Tento kód by nebyla volána mimo tyto procesy.
Jak opravit porušení
Porušení tohoto pravidla opravit, změnit usnadnění metody private nebo internal (Friend v Visual Basic).
Při potlačení upozornění
Nepotlačovat upozornění od tohoto pravidla.
Příklad
Následující příklad ukazuje dva způsoby, které porušují pravidla.
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) {}
}
}
Souvisejících pravidel
CA1410: Metody registrace modelu COM by si měly odpovídat
Viz také
Referenční dokumentace
Regasm.exe (nástroj registrace sestavení)