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


CA1409: видимые COM-типы должны быть создаваемыми

TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

Категория

Microsoft.Interoperability

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

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

Причина

Ссылочный тип, который специально помечен как видимый для модели COM, содержит открытый параметризованный конструктор, но не содержит открытого конструктора по умолчанию (без параметров).

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

Тип без открытый конструктор по умолчанию нельзя создать с клиента COM.Однако такой тип по-прежнему доступен для COM-клиентов, если для создания типа и передачи его клиенту доступны другие средства (например использование возвращаемого значения вызываемого метода).

Данное правило пропускает типы, производные от класса Delegate.

По умолчанию для модели COM видимы следующие объекты: сборки, общие типы, члены общих экземпляров в общих типах и все элементы общих типов значений.

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

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

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

Отключение предупреждений данного правила безопасно в том случае, если предоставлены другие средства создания и передачи объектов COM-клиенту.

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

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

См. также

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

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

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

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