UserScopedSettingAttribute или ApplicationScopedSettingAttribute? - PullRequest
1 голос
/ 19 сентября 2011

Я реализую настройки новой библиотеки классов и хочу использовать архитектуру настроек .NET 2.0 вместо обычного раздела appSettings в файле .config.

Я создал файл Main.settings в среде IDE Visual Studio 2008, и он автоматически сгенерировал как файл Main.settings, так и соответствующий файл Main.Designer.cs. В среде IDE мне нужно выбрать между тем, должен ли каждый параметр иметь область пользователя или область приложения, что означает, что среда IDE применяет либо UserScopedSettingAttribute, либо ApplicationScopedSettingAttribute к свойству параметра.

Материал на MSDN , который я нашел по этой теме, кажется, подходит к вещам с точки зрения приложения Windows Forms; в нем говорится об использовании пользовательских настроек для содержимого, которое относится только к пользователю, использующему приложение, и об используемых в приложении настройках содержимого, которое всегда относится к приложению, независимо от того, какой пользователь его использует.

Однако что мне делать, если мой файл настроек не для приложения Windows Forms, а для библиотеки классов, которую я вызываю с веб-сайта под управлением IIS? Имеет ли значение область действия пользователя как пользователя или приложения? Если да, какие факторы нужно учитывать, чтобы определить, как настроить параметры?

1 Ответ

1 голос
/ 29 сентября 2011

Веб-приложения не поддерживают пользовательские настройки приложения. Чтобы получить аналогичную функциональность, вы можете использовать класс SettingsProvider или создать свою собственную реализацию. Для настроек всего приложения вам нужно будет использовать файл web.config и либо

  1. Используйте раздел appSettings и используйте System.Configuration.ConfigurationManager для доступа к этим настройкам или
  2. Реализация собственного раздела конфигурации .

Ответ на ваш второй вопрос: это зависит.

В веб-приложении пользовательские настройки обычно связаны с сеансом и позволяют каждому пользователю иметь разные значения для определенного параметра. Эти настройки обычно используются для настройки взаимодействия с пользователем. С другой стороны, если вы хотите, чтобы параметр был одинаковым для всего приложения, независимо от пользователя, который обращается к приложению, вам следует использовать параметр области приложения.

Если вы предоставите более подробную информацию о вашей конкретной ситуации, возможно, я смогу дать дальнейшие указания.

Также взгляните на этот вопрос , если вы хотите использовать файл конфигурации из библиотеки классов вместо того, чтобы поместить свои настройки в файл web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...