3

我还是 C# 的新手……我正在构建一个 WPF 应用程序,并且我正在尝试应用一些用户应用程序设置。插入标准应用设置(int、double、string 等)很容易。我什至插入了类似 WindowState 的东西。

我想要一个 DirectoryInfo 和/或 FileInfo 作为可保存的设置,而不是字符串。

所选类型:System.IO.File 给出错误消息“不支持抽象类型”。

这是有道理的,因为您如何将抽象类型实现为设置。

所选类型:System.IO.FileInfo 给出错误消息“未定义类型'System.IO.FileInfo'。”。

DirectoryInfo/FileInfo 是否不可设置为应用程序设置?是否可以?值得花时间吗?您如何确定哪些可以用作设置,哪些不能?

我在用户设置方面的经验是有限的,我正在尝试扩展我的知识,这让我很难过。

编辑:我试图发布一些截图,但显然我太新了。我在 Visual Studio 的应用程序设置中工作。

进一步说明:

http://msdn.microsoft.com/en-us/library/a65txexh.a​​spx

应用程序设置可以存储为 XML 可序列化或具有实现 ToString/FromString 的 TypeConverter 的任何数据类型。最常见的类型是字符串、整数和布尔值,但您也可以将值存储为颜色、对象或连接字符串。

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

我错过了什么吗,因为它有 ToString()...

4

1 回答 1

2

是的,这是不可能的。应用程序设置使用 XML 序列化进行序列化。类可序列化的一个硬要求是它需要有一个无参数的构造函数。两个班级都没有。

这不是一个真正的问题,因为任何一个类都有一个接受字符串的构造函数。因此,将设置设为字符串,您始终可以从中获取 FileInfo 或 DirectoryInfo。尽管它必须引用存在的文件系统对象。如果这是一个问题,那么只需创建自己的课程。

于 2010-08-26T21:05:32.360 回答