Поделиться через


CA1411: методы регистрации для COM-клиента не должны быть видимыми

TypeName

ComRegistrationMethodsShouldNotBeVisible

CheckId

CA1411

Категория

Microsoft.Interoperability

Критическое изменение

Критическое изменение

Причина

Метод, помеченный атрибутом ComRegisterFunctionAttribute или ComUnregisterFunctionAttribute доступен для внешнего кода.

Описание правила

При регистрации сборки для модели COM в реестр добавляются записи для каждого типа сборки, доступного для COM.Методы, помеченные атрибутами ComRegisterFunctionAttribute и ComUnregisterFunctionAttribute, вызываются в процессе регистрации и отмены регистрации соответственно для запуска пользовательского кода, относящегося к регистрации и отмене регистрации данных типов.Этот код не должен вызываться за пределами этих процессов.

Устранение нарушений

Чтобы устранить нарушение данного правила, измените доступность данного метода на private или internal (Friend в Visual Basic).

Отключение предупреждений

Для этого правила отключать вывод предупреждений не следует.

Пример

В следующем примере показаны два метода, которые нарушают данное правило.

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) {}
   }
}

Связанные правила

CA1410: методы регистрации для COM-клиента должны быть соответствующими

См. также

Ссылки

Regasm.exe (средство регистрации сборок)

RegistrationServices

Основные понятия

Регистрация сборок в COM