Базовый тип не соответствует CLS, какие причины этого предупреждения?
У меня есть предупреждение от предмета на одном из моих классов. На самом деле класс очень прост, просто наследник моего базового типа. Также у меня есть некоторые другие наследники из этого универсального класса в решении, и таких предупреждений нет.
Что может быть причиной этого?
Компилятор не дает никаких подсказок, почему базовый тип не соответствует CLS
Ответы
Ответ 1
У вас, вероятно, есть [assembly:CLSCompliant(true)]
где-то в этом конкретном проекте. Это заставляет компилятор проверять все типы на соответствие CLS. Вы можете переопределить это для типа или метода или чего-то с [CLSCompliant(false)]
.
Ответ 2
Я предполагаю, что у вас есть производный тип, отмеченный как CLSCompliant, но база не является.
Написание кода совместимости с CLS
В каноническом примере используется UInt32, который не является частью Common Language Specification (CLS) - поэтому вам нужно использовать Int64 для соответствия CLS или удалить атрибут (объявите себя не-cls-совместимым).
Нужно больше кода для идентификации строки нарушения кода. Дополнительная информация о ошибке, которую вы получаете.