Базовый тип не CLS-совместимый, какие причины этого предупреждения?
-
26-09-2019 - |
Вопрос
Я получил предупреждение от темы на одном из моих классов. На самом деле класс очень прост, просто наследник моего родового базового типа. Также у меня есть другие наследования от этого универсального класса через решение, и таких предупреждений нет.
Что может быть причиной этого? Компилятор не дает никаких подсказок, почему базовый тип не CLS-совместимый
Решение
Вы, наверное, есть [assembly:CLSCompliant(true)]
где-то в этом конкретном проекте. Это вызывает компилятор, чтобы проверить все типы, чтобы быть совместимым. Вы можете переопределить это для типа или метода или что-то с [CLSCompliant(false)]
.
Другие советы
Я предполагаю, что у вас есть полученный тип, помеченный как CLSCompliant, но база не.
Написание CLS Codient Code Канонический пример использует UINT32, который не является частью спецификации общего языка (CLS) - следовательно, вам необходимо использовать INT64, чтобы быть совместимым или удалением атрибута (объявляем, что не соответствует CLS).
Нужно больше кода для идентификации оскорбительной строки кода. Больше информации Ошибка Вы получаете.