Разделы пользовательских настроек Silverlight - PullRequest
3 голосов
/ 14 мая 2010

Я работаю с приложением silverlight, которое имеет довольно большой раздел appsettings в web.config. При поиске я не могу найти никаких примеров использования пользовательских разделов конфигурации с Silverlight. Я не могу быть первым, кто столкнулся с этой проблемой, в обстановке "серебряного света".

Какова лучшая практика, чтобы прекратить помещать значения конфигурации в appconfig и использовать подход, более похожий на пользовательские разделы конфигурации. Спасибо

1 Ответ

1 голос
/ 14 мая 2010

Web.Config предназначен исключительно для использования веб-сайтом, который предоставляет, помимо прочего, файлы приложений silverlight. Приложения Silverlight на веб-сайте изначально не имеют понятия «App.config».

Для записи одним очень простым способом создания пользовательских разделов является использование NameValueSectionHandler: -

<configuration>
  <configSections>
    <section name="myCustom" type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <myCustom>
    <add key="someItem" value="someValue" />
  </myCustom>
  <!-- other sections here -->
</configuration>

В серверном коде вы можете получить доступ к значениям из этого раздела через объект HttpContext.

string someValue = ((NameValueCollection)context.GetSection("myCustom"))["someItem"];

Альтернативой является создание собственного обработчика раздела, создающего реализацию IConfigurationSectionHandler, которая просто имеет Create, которая принимает XmlNode, который является узлом "myCustom".

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

Для простых наборов значений обычно используется параметр initParams в теге объекта плагина. Если у вас более сложные настройки, тогда придумайте собственную структуру xml для хранения этих данных и загрузите этот xml при запуске приложения.

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