Могу ли я сохранить общий список в app.config? - PullRequest
0 голосов
/ 08 апреля 2011

На этот вопрос, похоже, уже дан ответ, но решения не работают для меня.Вот предыдущий вопрос: Можете ли вы иметь общий список (T) в вашем файле настроек?

Я пытаюсь сохранить общий список структуры внутри моего приложения.config.(т.е. у меня есть структура, определенная двумя полями, и я хочу сохранить их список в моем app.config)

Возможно ли это?На вопрос, указанный выше, есть несколько ответов, но они, похоже, не работают ...

Ответы [ 4 ]

1 голос
/ 08 апреля 2011

Вид ... Предполагая, что два поля сериализуются в строку, вы можете создать пользовательский раздел конфигурации и сохранить их непосредственно в XML. Затем нужно написать собственный обработчик раздела для управления (де) сериализацией в и из списка (Of YourCustomTwoFieldClass). Ничто не мешает вам просто сериализовать все это в одну строку и вставить его в AppSetting. Затем вы можете десериализовать при необходимости.

Редактировать: Глядя на ваш оригинальный вопрос, это не то место для хранения данных. Это не способствует «профильной» информации вообще. Я бы скорее сохранил свой собственный плоский файл, чем все время динамически переписывал app.config. Лучше всего использовать для «статических» значений конфигурации для всего приложения.

Задумывались ли вы о создании собственного провайдера облегченных профилей? Это даст вам все виды гибкости в отношении того, как / когда / где вы храните информацию.

0 голосов
/ 08 апреля 2011

Кажется, запись cofig изменилась, в то время как копирование вставлено здесь

<? Xml version = "1.0" encoding = "utf-16"?> BillGatesSubhashLama

0 голосов
/ 08 апреля 2011

Да, это возможно, например,

поместите следующий код в файл app.confing под ключом настроек 'Properties.Settings.Default.ConfigName'

BillGatesSubhashLama

Iиспользовала следующую структуру, также можно использовать класс: public struct EmpName {public string FirstName {get;задавать;} публичная строка LastName {get;задавать;}}

Не последний шаг для получения значения в списке:

        XmlSerializer se = new XmlSerializer(typeof(List<EmpName>));
        TextReader tr = new StringReader(Properties.Settings.Default.ConfigName);
        XmlReader sr = XmlReader.Create(tr);
        List<EmpName> names = (List<EmpName>)se.Deserialize(sr);

Пожалуйста, проголосуйте за меня, если получите ответ

0 голосов
/ 08 апреля 2011

Конечно, вы можете ... сериализовать список, обновить свой AppSetting и десериализовать, когда вы прочитаете его обратно.

...