2010-10-25 5 views
31

У меня есть предупреждение от темы на одном из моих классов. На самом деле класс очень прост, просто наследник моего базового типа. Также у меня есть некоторые другие наследники из этого универсального класса в решении, и таких предупреждений нет.Базовый тип не соответствует CLS, какие причины этого предупреждения?

В чем может быть причина этого? Компилятор не дает никаких сведений о том, почему базовый тип не соответствует CLS

+0

Убедитесь, что никакие методы или свойства, которые видны вне класса, имеют одинаковую орфографию с единственным случаем для их разделения, например: Соединение и соединение. VB.NET не различает случай, и тогда эти свойства будут неоднозначными. –

ответ

53

Возможно, у вас есть [assembly:CLSCompliant(true)] где-то в этом конкретном проекте. Это заставляет компилятор проверять все типы на соответствие CLS. Вы можете переопределить это для типа или метода или чего-то с [CLSCompliant(false)].

+4

На самом деле оказалось, что у меня не было этого атрибута в другой сборке. Благодаря! – DarkDeny

+0

Добро пожаловать. –

3

У меня есть производный тип, обозначенный как CLSCompliant, но базой нет.

Writing CLS Compliant Code Канонический пример использует UInt32, который не является частью спецификации Common Language (CLS) - значит, вам нужно использовать Int64, чтобы быть совместимым CLS или удалить атрибут (объявлять себя не-ЦБС совместимый).

Нужно больше кода для идентификации строки нарушения кода. Больше информации о the error вы получаете.