Ссылочный случай Имени не CLS-совместим

Вы можете попробовать что-то вроде этого:


И определить свойство ext.properties.dir в вашем сервере приложений / jvm, в противном случае расположение свойств по умолчанию "classpath: /" (то есть, классы dir .jar или .war):

-Dext.properties.dir=file:/usr/local/etc/

Кстати, очень полезно в блоге .

5
задан sth 27 July 2011 в 21:01
поделиться

2 ответа

Не все языки .NET чувствительны к регистру (например, VB), когда у вас смешанные пространства имен, как это, различие только в том случае, если (используя формулировку предупреждения) ваш код может быть недоступен другим разработчикам.

Возможно, это не ваш случай, поэтому это предупреждение (которое в моем магазине мы рассматриваем как ошибку)

7
ответ дан 13 December 2019 в 22:15
поделиться

Это просто предупреждение, поскольку не все языки, которые могут использовать типы в вашем решении, будут знать о разнице (и, возможно, не смогут использовать типы).

Я думаю, вы можете избежать этого предупреждения, отметив свою сборку как несовместимую с CLS (в файле AssemblyInfo.cs) ( подробнее здесь ):

[assembly:CLSCompliant(false)]

Не уверен, что я думаю, что это хорошая идея, хотя ...

Обновление: Я думаю, что причина того, что предупреждение выдается, хотя ничего публично не раскрывается, заключается в том, что пространства имен не имеют модификаторов доступа. Возможно, вы могли бы сказать, что пространства имен всегда являются общедоступными, поэтому они открыты для потенциальных клиентов, даже если они могут не содержать никаких общедоступных типов.

3
ответ дан 13 December 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: