Можно ли использовать пользовательские перечисления в настройках приложения? (VS10) - PullRequest
1 голос
/ 28 июня 2010

В Visual Studio 10 (возможно, и в других версиях) можно определить настройки приложения, используя представление конструктора.Эти настройки кажутся просто хранящимися открытыми переменными.

Можно ли использовать пользовательское перечисление в качестве типа настройки приложения?

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

Ответы [ 2 ]

6 голосов
/ 28 июня 2010

Краткая версия:

Вы можете создать свои собственные ConfigurationSection и ConfigurationSectionGroup (сначала ссылка на System.Configuration).Затем вы определяете в своем файле web.config поддержку пользовательских разделов.

Если вы хотите использовать intellisense, вам нужно изменить C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas \ DotNetConfig.xsd для включения сведений о ваших новых разделах.

Например, допустим, вы хотите, чтобы конфигурация выглядела следующим образом:

<tomWright.Framework>
    <settings awesomeness="High" coolness="Medium"/> 
</tomWright.Framework>

Вы бы создали группу ConfigurationSectionGroup, называемую чем-то вроде TomWrightFrameworkConfigurationSectionGroup (который наследуется от ConfigurationSectionGroup) и имеет одно свойство с именем Settings, которое указывает на другой класс SettingsConfigurationSection (который наследуется от ConfigurationSection).На MSDN есть несколько примеров того, как это сделать.

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

0 голосов
/ 28 июня 2010

IIRC вы можете хранить пользовательские типы данных в настройках приложения, но тип должен быть XML-сериализуемым или иметь преобразователь типов, который реализует методы tostring / fromstring. Для перечислимых типов, я думаю, вам просто нужно пометить его атрибутом SerializableAttribute. Сейчас не на моем рабочем компьютере, чтобы проверить мою память.

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