Я хотел бы сохранить набор пар ключ/значение в настройках приложения моего веб-приложения ASP.NET, но я не нахожу простой способ сделать это. Например, эти twoquestions говорят мне, что StringDictionary и т. Д. Не будут сериализованы в XML и предполагают, что мне придется катить мою собственную реализацию. Но, похоже, это должно быть проще сделать; в конце концов, web.config - это XML и < applicationSettings> по существу представляет собой набор пар ключ/значение, поэтому мне кажется, что я пропускаю что-то очевидное. Учитывая мой конкретный случай ниже, действительно ли мне нужно сворачивать свою сериализацию, или есть более простой способ обхода?Есть ли способ использовать словарь-подобную коллекцию в качестве объекта «Параметры приложения»?
Входящее веб-приложение является базовой формой контакта, которая отправляет электронное письмо различным получателям на основе значения параметра; например http://www.examplesite.com/Contact.aspx?recipient=support отправит письмо по адресу [email protected]
Цель состоит в том, чтобы иметь возможность добавлять или удалять получателей (или изменять их адреса), редактируя файл web.config, чтобы мне не пришлось перекомпилировать и легко поддерживать различные конфигурации в тестовых и производственных средах. Например:
// I can use something like this for the sender address
SmtpMsg.From = New MailAddress(My.Settings.EmailSender)
// And then just edit this part of web.config to use
// different addresses in different environments.
<setting name="EmailSender" serializeAs="String">
<value>[email protected]</value>
</setting>
// I want something like this for the recipients
SmtpMsg.To.Add(My.Settings.Recipients("support"))
// and presumably some sort of equivalent xml in web.config
// maybe something like this???
<recipients>
<item name="support" serializeAs="String">
<value>[email protected]</value>
</item>
<!-- add or remove item elements here -->
</recipients>
редактирования: заменить VB комментарии W/C# комментарии из-код-раскраска
Это почти идеальный ответ. У этого есть быстрое и простое решение, которое достаточно хорошо (то есть просто используйте), а также более тщательное решение, которое обращается к корню моего вопроса (т. Е. Коллекции в web.config). Также отличный образец кода. Если бы я мог проголосовать за это снова, я бы это сделал. Спасибо. –
Matt
Нет проблем - комментарий достаточно благодарен :) - Думаю, если бы я портировал образцы на VB, это было бы прекрасно;) –