Подтвердить что ты не робот

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

Я пытаюсь установить тип свойства параметра приложения в пользовательский тип перечисления, который я определил в своей сборке (вызовите этот проект A)

В браузере настроек я нажимаю кнопку "Обзор" и отображается диалоговое окно "Выбрать тип".

И типы, определенные в проекте A, мне кажутся недоступными. Тем не менее, типы доступны из других проектов, на которые ссылался A.

Мне кажется почти непонятным, что нельзя использовать типы, определенные в базовом проекте, поэтому я предполагаю, что я делаю что-то неправильно. Я пробовал строить, чистить, восстанавливать, перезапускать без везения, так что именно я не хватает?

edit: снимок экрана здесь http://tinypic.com/r/2ls8myb/7

4b9b3361

Ответ 1

Я пытался сделать то же самое в VS 2010 (.net 3.5). Оказывается, вы можете сделать это, используя конструктор настроек. Пользовательский интерфейс полностью испорчен, как указано, но если вы вручную укажете полное имя переименования в окне "Обзор", оно будет работать. Это имеет преимущество не изменять сгенерированный код (*.Designer.cs), который всегда хорошо избегать, потому что когда вы там ничего не гарантируете, что вы измените, не будет перезаписано.

PS - Это работает только в том случае, если enum является общедоступным.

Настройки GUI:

enter image description here

Затем вручную введите полное имя типа:

enter image description here

В какой-то момент я клянусь, что увидел столбец значений перечисления в столбце Value, но с тех пор я его не видел, и вам просто нужно ввести соответствующее значение.

Ответ 2

Я тоже не смог найти свой собственный тип. Я смог добавить свой собственный тип, открыв файл Settings.settings в текстовом редакторе и добавив параметр в раздел "Настройки" следующим образом:

<Setting Name="Options" Type="MyProject.MyOptions" Scope="User">
  <Value Profile="(Default)" />
</Setting>

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

Ответ 3

Потому что ваш собственный тип не сериализуем. Сделайте сериализуемым, и вы можете определить его в своих настройках.