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


Тип <имяТипа1> не может быть помечен как CLS-совместимый, поскольку содержащий его тип <имяТипа2> не является CLS-совместимым

Обновлен: Ноябрь 2007

Type '<typename1>' cannot be marked CLS-compliant because its containing type '<typename2>' is not CLS-compliant

Класс или интерфейс помечен как <CLSCompliant(True)> и вложен в тип, никак не помеченный или помеченный как <CLSCompliant(False)>.

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

При применении CLSCompliantAttribute к программному элементу, параметру isCompliant атрибута присваивается значение True или False, чтобы указать на совместимость или несовместимость. Значение по умолчанию для этого параметра отсутствует, поэтому значение необходимо указать.

Если к элементу не применяется атрибут CLSCompliantAttribute, элемент считается несовместимым.

По умолчанию это сообщение является предупреждением. Дополнительные сведения о скрытии предупреждений или их обработке как ошибок см. в разделе Настройка предупреждений в Visual Basic.

Идентификатор ошибки: BC40030

Исправление этой ошибки

  • Если требуется CLS-совместимость, определите этот тип в другой иерархии вложенности.

  • Если требуется, чтобы этот тип оставался в его текущей иерархии вложенности, то удалите CLSCompliantAttribute из его определения или пометьте его как <CLSCompliant(False)>.

См. также

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

Написание CLS-совместимого кода