2010-08-26 1 views
3

Я все еще новичок в C# ... Я создаю приложение WPF, и я пытаюсь применить некоторые параметры пользовательских приложений. Вставить стандартные настройки приложения (int, double, string и т. Д.) Легко. У меня даже есть что-то вроде WindowState.Настройки приложения + DirectoryInfo/FileInfo

Я бы хотел иметь DirectoryInfo и/или FileInfo в качестве полезных настроек вместо строк.

Выбранный тип: System.IO.File выдает сообщение об ошибке «Абстрактные типы не поддерживаются».

Это имеет смысл, поскольку как вы можете реализовать абстрактный тип в качестве настройки.

Выбранный тип: System.IO.FileInfo дает сообщение об ошибке «Тип» System.IO.FileInfo 'не определен. ".

Является ли DirectoryInfo/FileInfo недоступным в качестве настроек приложения? Является ли это возможным? Стоит ли времени? Как вы можете определить, что можно использовать в качестве настройки, а что нет?

Мой опыт с пользовательскими настройками ограничен, и я пытаюсь расширить свои знания, и это меня озадачило.

Редактировать: Я попытался опубликовать несколько скриншотов, но, видимо, я слишком новый. Я работаю внутри Visual Studio, настройки приложения.

далее отмечает:

http://msdn.microsoft.com/en-us/library/a65txexh.aspx

Настройки приложения могут быть сохранены как любой тип данных, который является XML сериализации или имеет TypeConverter, который реализует ToString/FromString. Наиболее распространенными типами являются String, Integer и Boolean, но вы также можете сохранять значения как цвет, объект или как строку соединения.

DirectoryInfo di = new DirectoryInfo(@"C:\"); 
di.ToString(); 

ли я что-то отсутствует, так как он имеет ToString() ...

ответ

2

Да, это не представляется возможным. Параметры приложения сериализуются с использованием сериализации XML. Одно жесткое требование для сериализуемого класса состоит в том, что он должен иметь конструктор без параметров. Ни у одного из них нет.

Это не проблема, потому что любой класс имеет конструктор, который принимает строку. Итак, сделайте настройку строкой, и вы можете всегда получать из нее FileInfo или DirectoryInfo. Хотя он должен ссылаться на объект файловой системы, который существует. Если это проблема, просто создайте свой собственный класс.

+1

Ahh ... parameter-less constructor ... не видел, что упоминалось в каких-либо заметках в любом месте. У меня есть настройка как строки atm, с кодом типа IsValid за кулисами. Я просто старался сохранить тип согласованным от конца к концу. – WernerCD

 Смежные вопросы

  • Нет связанных вопросов^_^