2010-10-14 4 views
3

Когда я создаю консольное приложение, я могу щелкнуть правой кнопкой мыши по проекту в Visual Studio 2008 Pro. выберите Свойства> Перейти Настройки ввода Области приложения Настройки, а затем получить доступ к нему из кода, какДоступ к Properties.Settings.Default из класса?

Console.WriteLine(Properties.Settings.Default.MySetting.ToString()); 

Когда я делаю то же самое в проекте класса и попытаться назначить сферу охвата Applicatin Установки переменного как

this.mySettingVariable = Properties.Settings.Default.MySetting.ToString(); 

Я получаю сообщение об ошибке при создании того, что «Имя« Свойства »не существует в текущем контексте».

Что я делаю неправильно и как я могу получить доступ к свойствам Application Scoped для проекта класса?

ответ

5

Вы забыли добавить настройки в проект библиотеки классов. Вы не можете напрямую обращаться к настройкам проекта EXE.

Предоставление проекта библиотеки классов позволяет создавать собственные настройки, но это хлопот. DLL не может иметь свой собственный .config-файл, есть только один: файл app.exe.config. Вам необходимо объединить записи в файле app.config библиотеки DLL в файл app.exe.config вручную. Скопируйте и вставьте текстовый редактор. Это не очень удобно.

Другим подходом является создание этих свойств свойств класса. И пусть код в основном проекте инициализирует их из собственных настроек. Или просто вырезать настройки, потому что их лаваш и использовать .xml-файл.

+0

спасибо большое. Я пытаюсь прочитать мои настройки .dlls и не смог вызвать Properties.Settings. –

0

Убедитесь, что вы включили пространство имен в 'usings'.

Также убедитесь, что класс настроек является общедоступным.

+0

Модификатор доступа к настройкам был установлен в Internal (который, я предполагаю, woudl будет в порядке), я изменил на Public, но все еще имею ту же проблему – etoisarobot

0

Вытащил из here

Поскольку нет файла конфигурации модели для библиотек классов, приложения параметры не применяются для класса библиотечных проектов. Исключением является проект Visual Studio Tools for Office DLL , который может иметь конфигурационный файл .

+0

Но библиотеки классов все еще могут иметь настройки :) – leppie

+0

Не применяется область применения ... что и есть ОП упоминается. Я считаю, что настройки уровня пользователя будут достаточными. –

+1

Я использую эту функцию все время. Поверьте, это работает. Вы можете установить все настройки из основного файла app.config. Или web.config. – leppie

0

Ваш файл .settings находится в папке «Свойства» в вашем проекте?

+0

Да У меня есть «using System.Configuration» в верхней части класса – etoisarobot

+0

@TooFat - см. Мое правление относительно местоположения вашего файла настроек. –

Смежные вопросы