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

Товар Значение
Идентификатор правила CA1410
Категория Microsoft.Interoperability
Критическое изменение Не критическое

Причина

Тип объявляет метод, помеченный System.Runtime.InteropServices.ComRegisterFunctionAttribute атрибутом, но не объявляет метод, помеченный System.Runtime.InteropServices.ComUnregisterFunctionAttribute атрибутом или наоборот.

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

Для клиентов объектной модели компонента (COM) для создания типа .NET сначала необходимо зарегистрировать тип. Если он доступен, метод, помеченный ComRegisterFunctionAttribute атрибутом, вызывается во время процесса регистрации для запуска пользовательского кода. Соответствующий метод, помеченный ComUnregisterFunctionAttribute атрибутом, вызывается во время процесса отмены регистрации для отмены операций метода регистрации.

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

Чтобы устранить нарушение этого правила, добавьте соответствующий метод регистрации или отмены регистрации.

Когда лучше отключить предупреждения

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

Пример

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

using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
   public class ClassToRegister
   {
   }

   public class ComRegistration
   {
      [ComRegisterFunction]
      internal static void RegisterFunction(Type typeToRegister) {}

//      [ComUnregisterFunction]
//      internal static void UnregisterFunction(Type typeToRegister) {}
   }
}

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

См. также