Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对.Net应用程序设置框架感到困惑_C#_Wpf_Application Settings - Fatal编程技术网

C# 对.Net应用程序设置框架感到困惑

C# 对.Net应用程序设置框架感到困惑,c#,wpf,application-settings,C#,Wpf,Application Settings,由于对.Net世界还相当陌生,我对在WPF应用程序中存储我的应用程序设置的位置和方式感到非常困惑 我一直看到对Properties.Settings.Default的引用,但这在我的WPF应用程序中无法解决,我无法找到这些类的实际类型,以便找到要拉入的程序集。这是WinForms特有的技术吗 我还发现ConfigurationSettings,它似乎已被弃用;ConfigurationManager、AppSettings、ApplicationSettings和Settings!我相信其中很多

由于对.Net世界还相当陌生,我对在WPF应用程序中存储我的应用程序设置的位置和方式感到非常困惑

我一直看到对
Properties.Settings.Default
的引用,但这在我的WPF应用程序中无法解决,我无法找到这些类的实际类型,以便找到要拉入的程序集。这是WinForms特有的技术吗

我还发现
ConfigurationSettings
,它似乎已被弃用;
ConfigurationManager
AppSettings
ApplicationSettings
Settings
!我相信其中很多都可以一起工作,但我真的很难区分哪些是属于一起的,哪些是旧的,或者与WPF无关的


有人能为新手详细说明基本选项吗?

如果没有太多的设置需要保存,为什么不使用Windows注册表?

ConfigurationManager
等没有什么神奇之处。您可以使用自己的设置对象,将其序列化/反序列化到XML或从XML进行序列化

请参阅以了解应用程序数据路径是什么


对于应用程序中未解析的
Properties.Settings.Default
Solution Explorer
->您的项目->
添加
->
新项目
->
设置文件
。这将自动生成
Properties.Settings
类,允许您在设计时编辑应用程序设置。然后,您将能够调用
属性.设置.默认值.保存()

惊讶于没有人能够回答这个问题,所以我做了更多的挖掘,并将我的发现记录在这里,以防其他人像我一样感到困惑:

  • 配置设置
    已失效。(.Net 2)。它存在于
    System.Configuration.dll
    中,是所有新配置的基础。它是一个静态类,因此可以在任何地方访问。它还公开了一组名为
    AppSettings
    的名称/值对,可能是为了向后兼容

  • AppSettings
    不是类型安全的,它实际上是成对的字符串

  • ApplicationSettings
    似乎指的是
    ApplicationSettingsBase
    ,它是用作较新样式类型安全设置基础的类。子类包含映射到设置的成员<代码>配置管理器
仍用于管理/序列化这些

  • 设置
    是工具生成的上述静态子类,通过向项目中添加“设置文件”生成,允许在设计时编辑设置。它会生成到项目的属性命名空间中,因此可以通过应用程序中的任何位置通过
    属性.设置
    访问。尽管WinForms在整个文档中都提到过,但它似乎也可以从WPF中使用

  • 如果您不想使用设置文件,还可以使用您自己的自定义类直接使用ConfigurationManager。有关使用概述的一些综合链接包括:


    所有这些设置似乎都被序列化到app.config文件中,尽管我看到了对不同应用程序设置文件的引用,所以我可能错了。

    我可以很高兴地将其滚动到注册表或文件中,但我认为,考虑到明显的现有机制,我会保存一些代码。此外,应用程序类是WinForms类。我的应用程序是WPF@GazTheDestroyer它在WinForms名称空间中是的,但是您可以在WPF应用程序中使用它,而不会有任何问题;我愿意。类似地,我用C#编写,使用
    Microsoft.VisualBasic.FileIO.TextFieldParser
    类-也没问题。只是namespaces.Properties.Settings.Default是在生成Settings.Settings的代码文件中定义的变量。