问题标签 [applicationsettingsbase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5563 浏览

c# - 存储通用列表使用 ApplicationSettingsBase

我正在尝试使用 ApplicationSettingsBase 保存 List<Foo>,但是即使填充了列表,它也只会输出以下内容:

Foo 定义如下:

如何启用 ApplicationSettingsBase 来存储 List<Foo>?

0 投票
1 回答
1296 浏览

c# - 为什么 ApplicationSettingsBase.Reset() 清空 PropertyValues?

我认为 Reset() 方法会再次使用默认值重新填充设置,但似乎不是。如何使用默认值重新加载它们?

更新

删除了对 Reset() 的调用,并将属性值手动设置为默认存储的值。我仍然很想知道这是应该使用它的方式还是我错过了什么?

0 投票
1 回答
1439 浏览

.net - .NET SettingsProvider/ApplicationSettingsBase 缓存

我正在查看一些使用 .NET System.Configuration.SettingsProvider 和 ApplicationSettingsBase 来处理配置的代码。

我们有一个派生自 SettingsProvider 的类,它使用数据库作为数据存储,然后我们有其他从 ApplicationSettingsBase 继承的设置类,并具有 [SettingsProvider(typeof(MySettingsProvider))] 属性。

问题是我们在多个应用程序中使用这些设置类,但它们似乎在第一次加载时永久缓存配置值。问题是,如果在一个应用程序中更改了设置,其他应用程序将在下次重新启动之前无法获得该设置,因为它们被缓存在任何地方。

我的问题是:有没有办法强制 SettingsProvider 实现或派生自 ApplicationSettingsBase 的类不缓存值,并在每次访问设置时重新查询数据存储?一个有效的答案可能是这些类不打算在多应用程序环境中使用......

0 投票
2 回答
590 浏览

c# - 为什么将自定义对象添加到列表通过构造函数在 ApplicationSettingsBase 中不起作用?

这与另一个 SO question 密切相关。

使用下面的示例,有人可以向我解释为什么List<Foo>在显式设置 Foo 的每个属性的地方添加一个新的会导致该ApplicationSettingsBase.Save()方法正确存储数据,而通过构造函数将新的 Foo 添加到列表中(构造函数设置属性值) 不工作?谢谢!


0 投票
3 回答
16162 浏览

c# - ApplicationSettingsBase 中的 FileNotFoundException

在调试应用程序时,如果在 Visual Studio 中启用异常中断,我总是会收到以下错误。这真的让我很烦,因为我们使用异常中断。有趣的是,当我继续时它仍然有效(加载了 StringCollection)。

消息是:

无法加载文件或程序集“System.XmlSerializers,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。

这是导致异常的代码(设计器生成)

我试图创建一个显示错误的空测试应用程序,但没有发生异常。我们的项目很大,所以很难找到原因。也许这个网站上的某个人知道如何解决这个问题。

0 投票
1 回答
1903 浏览

c# - .NET ApplicationSettingsBase 每次加载时我应该调用 Upgrade() 吗?

我们的应用程序设置源自ApplicationSettingsBase. 当我们推送应用程序的新版本时,我们需要调用:

(来自元数据)

现在有一些棘手的方法可以确定您的设置是否需要升级,例如这篇文章,在我看来,它似乎只升级您的设置一次。现在我可以将我的应用程序的当前版本存储在设置中,并在我实例化设置时进行比较,如果它与当前版本不同,那么我可以升级。

我的问题是为什么不Upgrade()每次实例化设置时都调用?这样我就知道我永远不会过时。

0 投票
1 回答
410 浏览

wpf - MVVM 和 SettingsBase

嗨,我目前正在我正在开发的 WPF 应用程序中实现 MVVM。我使用 2 个单独的项目实现了 ViewModel 和 Views。只有 View 从 ViewModel 引用。但是,我已经到了需要将设置类中的信息(由 Visual Studio 使用项目属性中的设置对话框自动生成)到 ViewModel 的地步。我该怎么做,因为 ViewModel 不应该引用 View 的类,而且 Settings 类也有一个 internal 修饰符。

需要您对此提出建议...我正在使用具有定位器模式的 mvvm-light ..

谢谢

0 投票
0 回答
7048 浏览

c# - ApplicationSettingsBase 在单元测试期间将配置文件保存在哪里?

一些背景上下文:我从 ApplicationSettingsBase 派生以在我的应用程序中保存自定义配置设置集,并且手动测试工作正常,保存配置集没有问题。

我还想对我的 ConfigSettings 功能进行单元测试,以确保反序列化和保存多组设置(使用各种 SettingsKeys)都正常工作。我选择的单元测试框架是 NUnit。

我的 TextFixtureSetUp 方法如下所示:

在我的实际应用程序中,看起来配置设置被保存在

但我似乎无法在我的单元测试中找到设置保存的位置。我的意思是,测试是成功的,所以反序列化(大概)工作,但我不知道它们究竟被写入磁盘上的哪个位置,并且 ApplicationSettingsBase 类似乎没有任何方法来指定一个保存路径。

有人有想法么?

马特舒伯特

更新

我发现发生了什么事。我使用 Resharper 在 Visual Studio 中运行我的 NUnit 测试,而 Resharper 创建了自己的隔离 AppDomain。所以 ConfigSettings 被保存在

(JetBrains 是 Resharper 背后的公司)

我从命令行使用我的构建脚本对此进行了测试,发现 NUnit 做了类似的事情,所以 ConfigSettings 现在在

希望这可以帮助其他有类似问题的人!:)

0 投票
1 回答
3553 浏览

c# - 如何使用 ApplicationSettingsBase 将自定义类保存到用户设置?

我正在尝试将自定义类保存到用户设置但没有太大成功。

我在 Visual Studio 2010 中使用 Target framework =“.NET Framework 4”创建了一个测试项目。主窗体有两个文本框,用于显示和编辑纯测试字符串以及自定义类中的“标题”字段;与两个按钮一起加载和保存设置。

最后,我添加了两个设置“TestString”(纯字符串值)和 TestData(MyDataClass 的类型 - 我在项目的 Properties.Settings 选项卡中通过从 Type 下拉列表中选择“Browse...”然后手动输入“MyUserSettingsTest .MyDataClass”在“选定类型”框中,因为它最初没有出现在可用类型列表中,但随后出现了。)

在启动应用程序并单击 LoadSettings 时,事件处理程序会加载纯字符串和 MyData,或者,如果失败,则创建 MyDataClass 的新实例。然后我可以在表单上编辑纯字符串和测试数据标题,然后单击 SaveSettings。如果我随后重新编辑这些值,则再次单击 LoadSettings,最后保存的值将按预期恢复为两个值。到目前为止,一切都很好。

问题是在退出应用程序并重新启动它时,纯测试字符串恢复正常,但 MyData 对象不是!显然,代码将 MyData 持久化到内存中,但不是永久存储?

主要表单代码为:

我的测试数据类代码是:

我不知道它是否有帮助,但自动生成的 app.config 文件(其中包含 TestString 但不是 TestData 的设置!!?)是:

自动生成的 Settings.Designer.cs 文件是:

请谁能告诉我我做错了什么或者我需要做些什么才能让我的自定义类正确地坚持用户设置。

0 投票
0 回答
242 浏览

.net - .NET:ApplicationSettingsBase 不可靠?

在使用应用程序设置的较大应用程序中,有时某些设置不会保存。

执行以下代码时,一切正常:

但是这段代码

Y确实在第一次调用时调用了 getter Save(),但在第二次调用时不调用Save(),并且写入的 XML 文件中的值Y不会改变。

代码当然更复杂,设置也复杂得多,语句也不是一个接一个,但基本是这样的。我试图用一个简单的程序重现这个,但没有成功(还没有?)。

顺便说一句:设置文件总是被正确写入。没有例外,处理或未处理。

我还在调查,但是我想问你:ApplicationSettingsBase工作可靠吗?有这方面的经验吗?

谢谢!