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


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

TypeName

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

Категория

Microsoft.Interoperability

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

Не критическое

Причина

В типе объявляется метод, помеченный атрибутом ComRegisterFunctionAttribute, но не объявляется метод, помеченный атрибутом ComUnregisterFunctionAttribute, или наоборот.

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

Для создания COM-клиентами типа .NET Framework необходимо сначала зарегистрировать этот тип.Если это возможно, в процессе регистрации вызывается метод, помеченный атрибутом ComRegisterFunctionAttribute, для выполнения определенного пользователем кода.В процессе отмены регистрации вызывается метод, помеченный атрибутом ComUnregisterFunctionAttribute, чтобы обратить операции метода регистрации.

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

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

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

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

Пример

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

Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class 

   Public Class ComRegistration

      <ComRegisterFunctionAttribute> _ 
      Friend Shared Sub RegisterFunction(typeToRegister As Type)
      End Sub 

'      <ComUnregisterFunctionAttribute> _  
'      Friend 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]
      internal static void RegisterFunction(Type typeToRegister) {}

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

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

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

См. также

Ссылки

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

RegistrationServices

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

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