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-клиента не должны быть видимыми
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по