Пользовательское перечисление как тип настройки приложения в C #? - PullRequest
22 голосов
/ 02 февраля 2010

Если есть перечисление в C #:

[Serializable]
public enum OperatingSystem 
{
    Windows,
    Macintosh
}

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

Edit:
Я установил тип в Enum, но в Значение (где должна быть Windows, Macintosh) видна только Windows, и я могу ввести любую строку.

Ответы [ 5 ]

35 голосов
/ 02 февраля 2010

Я вижу это в VC # Express 2005. В диалоговом окне "Обзор". "Выберите тип" отображаются только пространства имен System и Microsoft. Однако, если вы вставите полное имя типа в текстовое поле Выбранный тип, оно должно принять его.

17 голосов
/ 22 сентября 2010

Небольшое дополнение ко всем предыдущим ответам. Что касается меня - нужно было построить решение, прежде чем мое пользовательское перечисление было успешно добавлено в текстовое поле «Пользовательский тип».

13 голосов
/ 06 февраля 2010

Конечно - просто добавьте сериализуемое перечисление в ваш проект, выберите «Обзор» и введите квалифицированное имя пространства имен, например ClassLibrary1.OperatingSystems.Бинго.

"Я установил тип для моего Enum, но в Значение (где должна быть Windows, Macintosh) видна только Windows, и я могу ввести любую строку".

Вы пытались ввести что-то кроме «windows» или «macintosh»?Поведение, которое вы видите, настолько близко к тому, что вы хотите, чем вы собираетесь получить.Я довольно уверен в этом.

В любом случае ... удачи.

Посмотрите, что сделано за 30 секунд здесь.

0 голосов
/ 09 апреля 2019

Не забудьте добавить ссылку на проект, так как enum не должен (!) Быть в вашем основном проекте, он должен быть (!) Где-то еще. Затем, когда на вкладке настроек в свойствах основных проектов указано «строка», вы можете выбрать другой вариант, щелкнув раскрывающийся список. Выберите «Обзор» из вариантов. Вы увидите некоторые общие параметры Microsoft, но введите ваше enum-имя с префиксом его пространства имен, например Common.MyEnum. Это должно сработать.

0 голосов
/ 02 февраля 2010

Не знаю, хорошо ли я понял ваш вопрос, но когда я создаю пользовательский раздел конфигурации для использования в моих файлах конфигурации приложения, я создаю свойство enum с помощью атрибута TypeConverter вместе с EnumConverter .

Надеюсь, это поможет, но дайте мне знать, если я неправильно понял ваш вопрос.

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