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


CA1017: помечайте сборки атрибутом ComVisibleAttribute

TypeName

MarkAssembliesWithComVisible

CheckId

CA1017

Категория

Microsoft.Design

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

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

Причина

К сборке не применен атрибут System.Runtime.InteropServices.ComVisibleAttribute.

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

Атрибут ComVisibleAttribute определяет, как клиенты COM получают доступ к управляемому коду. Для правильной разработки сборки должны явным образом указывать видимость COM. Можно задать видимость COM для всей сборки, а затем переопределить ее для отдельных типов и элементов типов. Если атрибут отсутствует, содержимое сборки будет видимым клиентам COM.

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

Чтобы устранить нарушение этого правила, добавьте атрибут к сборке. Если требуется, чтобы сборка не была видимой клиентам COM, примените атрибут и присвойте ему значение false.

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

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

Пример

В следующем примере демонстрируется сборка с примененным атрибутом ComVisibleAttribute, который делает ее невидимой для клиентов COM.

Imports System

<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
using System;

[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}
using namespace System;

[assembly: System::Runtime::InteropServices::ComVisible(false)];
namespace DesignLibrary {}

См. также

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

Уточнение типов .NET для взаимодействия

Другие ресурсы

Взаимодействие с неуправляемым кодом