Sdílet prostřednictvím


CA1411: Registrace metod modelu COM by neměl 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 System.Runtime.InteropServices.ComRegisterFunctionAttribute nebo System.Runtime.InteropServices.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: By odpovídal registrace metod modelu COM

Viz také

Referenční dokumentace

Regasm.exe (sestavení registrační nástroj)

System.Runtime.InteropServices.RegistrationServices

Koncepty

Registrace sestavení s COM