Это немного сложнее в VB.NET, чем в C #. Это происходит главным образом потому, что в VB.NET пространство имен не так уж сильно сфокусировано. Поэтому в рамках решения VB.NET весьма распространено - хотя, возможно, и не очень хорошая практика - иметь одно и то же корневое пространство имен (по умолчанию) для всех проектов / узлов в решении, например:
MyNamespace.Main, MyNamespace.ClassLib1, MyNamespace.ClassLib2, MyNamespace.Common, etc.
Из-за этого метод доступа к межпроектным настройкам, описанный в другом месте в этом вопросе, падает.
Предлагаемый способ доступа к настройкам в ссылочном проекте в VB.NET:
- Сделать модификатор доступа
Settings
Public
,
- Доступ к настройке (только для чтения) с помощью
{MyNamespace}.My.MySettings.Default.{MySetting}
.
Обратите внимание, что My.MySettings
является свойством MyNamespace
напрямую, , а не имени сборки.
Только , если пространство имен подсборки отличается от пространства имен ссылающегося проекта, у вас будет доступ к MySetting
. Если пространства имен одинаковы, его просто не видно, и я не могу найти способ добраться до него. (Я мог бы покопаться в ILM и, возможно, выяснить, что делает компилятор, чтобы избежать конфликта - что, вероятно, могло бы иметь место, - но это спорный вопрос.)
Я проверял это в C # .NET и VB.NET. Разграничите свои корневые пространства имен - если это возможно - и вы получите радость.