CA1411: Metody rejestracji modelu COM nie powinny być widoczne
TypeName |
ComRegistrationMethodsShouldNotBeVisible |
CheckId |
CA1411 |
Kategoria |
Microsoft.Interoperability |
Złamanie zmiany |
Złamanie |
Przyczyna
Metoda, która jest oznaczona z ComRegisterFunctionAttribute lub ComUnregisterFunctionAttribute atrybut jest widoczne z zewnątrz.
Opis reguły
Gdy zestaw jest zarejestrowany z modelu COM (Component Object), wpisy są dodawane do rejestru dla każdego typu COM widoczne w zestawie.Metody, które są oznaczone ComRegisterFunctionAttribute i ComUnregisterFunctionAttribute atrybuty są nazywane podczas procesu rejestracji i wyrejestrowania z odpowiednio, aby uruchomić kod użytkownika, który jest specyficzne dla rejestrowania/wyrejestrowania z tych typów.Nie należy wywoływać ten kod poza te procesy.
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, zmienić dostępność metody do private lub internal (Friend w Visual Basic).
Kiedy do pomijania ostrzeżenia
Nie pomijaj ostrzeżenie od tej reguły.
Przykład
W poniższym przykładzie przedstawiono dwie metody, które naruszają reguły.
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) {}
}
}
Zasady pokrewne
CA1410: Metody rejestracji COM powinny być dopasowane
Zobacz też
Informacje
Regasm.exe (Narzędzie rejestracji zestawów)