【问题标题】:Application Settings + DirectoryInfo/FileInfo应用程序设置 + DirectoryInfo/FileInfo
【发布时间】:2010-08-26 20:51:45
【问题描述】:

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

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

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

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

Selected type: System.IO.FileInfo 给出“Type 'System.IO.FileInfo' is not defined”的错误消息。

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

我在用户设置方面的经验有限,我正在努力扩展我的知识,这让我很困惑。

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

补充说明:

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

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

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

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

【问题讨论】:

    标签: c# wpf fileinfo directoryinfo application-settings


    【解决方案1】:

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

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

    【讨论】:

    • 啊...无参数构造函数...在任何地方的任何注释中都没有看到过。我将它设置为字符串 atm,并在后台使用 IsValid 类型代码。我只是想保持端到端的类型一致。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 2023-01-17
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多