CA1411: методы регистрации для COM-клиента не должны быть видимыми
Товар | Значение |
---|---|
Идентификатор правила | CA1411 |
Категория | Microsoft.Interoperability |
Критическое изменение | Критическое |
Причина
Метод, помеченный атрибутом System.Runtime.InteropServices.ComRegisterFunctionAttribute или System.Runtime.InteropServices.ComUnregisterFunctionAttribute помеченный внешним атрибутом.
Описание правила
При регистрации сборки в объектной модели компонента (COM) записи добавляются в реестр для каждого видимого com-типа в сборке. Методы, помеченные атрибутами ComRegisterFunctionAttribute , ComUnregisterFunctionAttribute вызываются во время процессов регистрации и отмены регистрации соответственно для запуска пользовательского кода, относяющегося к регистрации или отмене регистрации этих типов. Этот код не должен вызываться вне этих процессов.
Устранение нарушений
Чтобы устранить нарушение этого правила, измените специальные возможности метода private
на или internal
(Friend
в Visual Basic).
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует.
Пример
В следующем примере показаны два метода, которые нарушают правило.
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-клиента должны быть соответствующими
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по