Использование параметра класса ListDictionary (Settings.settings) - PullRequest
2 голосов
/ 01 марта 2011

В моей программе на C # (.net v4, MS Visual C # Express) я пытаюсь использовать параметр класса ListDictionary.

Вот мой тестовый код:

// String setting
Properties.Settings.Default.StringTest = "Llama llama LLAMA!";

// ListDictionary setting
ListDictionary ld = new ListDictionary();
ld.Add("key1", "llama");
ld.Add("key2", "alpaca");

Properties.Settings.Default.LDTest = ld;

// Save settings
Properties.Settings.Default.Save();

После выполнения моего кода файл user.config записывается с параметром строки, но не с параметром ListDictionary (отрывок):

    <setting name="StringTest" serializeAs="String">
        <value>Llama llama LLAMA!</value>
    </setting>
    <setting name="LDTest" serializeAs="Xml">
        <value />
    </setting>

Список словаря указан как сериализуемый здесь , но нужно ли выполнить какую-то ручную работу, чтобы вставить его в файл настроек? Кроме того, есть ли способ выяснить, какие классы / типы могут использоваться в качестве параметров, а какие нет?

1 Ответ

1 голос
/ 01 марта 2011

Убедитесь, что у вас есть выброшенные исключения прерываний, а также .Net Framework Source Stepping, если вы хотите увидеть это исключение.Хотя я не думаю, что вы хотите сериализовать сложные типы данных в файл Settings.settings, вы могли бы сериализовать это в строку, разделенную точками с запятой и запятыми, если вы действительно не хотите этого делать.

Make sure you have Break When Exceptions thrown enabled

...