问题标签 [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.
c# - 当版本号更改时,如何升级 user.config 中的所有设置?
我有许多用户范围的设置由继承自 ApplicationSettingsBase 的对象存储在 user.config 中。
每个实例的SettingsKey在运行时主要使用表单名称动态派生。因此可能有数百个。
我已经阅读了许多问题和答案(比如这个 - How do you keep user.config settings across different assembly versions in .net? ),它们都建议在一些版本号检查中包装一个ApplicationSettingsBase.Upgrade()调用。
问题是(据我所知)您需要知道用于实例化所有 ApplicationSettingsBase 对象以依次调用升级方法的每个 *SettingsKey( 值。
有没有办法一次升级所有 user.config 设置,或者迭代文件中的所有设置来升级它们?
c# - 如何读取多个 .settings 文件并将它们传递给 C#/XNA .Net 中的方法
我正在尝试读取我用作播放器设置的多个设置文件。C# 和 XNA
它们都有完全相同的设置。AKA Settings1 有 player1 的名称、ShipType、Weapon、Shield、Color 等……(大约 100 种东西) Settings2 有 player2 的信息,设置与玩家 1 相同。AkA Settings1.settings Settings2.settings 等……
我正在使用这个因为它让我可以轻松地引用 VS 中的所有内容,我只需单击即可添加内容,它会为我找出类型和所有好东西。
这就是我想做的
然而。如果我使用此设置 playerSettings[0] 不允许我访问 Name 属性。
当我进入调试时,我可以看到 PlayerSettings[0] 包含 Settings1,其中包含 Name 属性。我只是不知道如何在 VS 中访问它,所以我可以阅读它。
我曾希望能够使用 system.configureation.applicationsettingsbase[] 这样我就可以简单地将它传递给该方法,并且只需要在那里更新 1 次代码。而不是手动为每个玩家做这件事(现在是 4 次而且很长)
同样,这些必须是默认设置文件,您可以通过右键单击并选择 add-new-settings 添加到项目中。
TLDR:我需要一种方法来访问 System.Configuration.ApplicationSettingsBase 数组中的属性,该数组中充满了 .settings 文件。或将每个不同的 .settings 文件传递给一个方法,即使它们被识别为不同的类型谢谢
c# - 首次使用时的自定义设置类异常 (ApplicationSettingsBase)
第一次读取设置(-在设置之前)会引发Object reference not set to an instance of an object.
异常。
在实际情况下无法使用DefaultSettingValueAttribute设置默认值,因为它不是我的 int 示例中的简单类型,并且不能描述为字符串。从文档:
DefaultSettingValueAttribute 要求可以将默认值表示为字符串。
应该如何避免这种情况?
更多信息:
当然,我可以将它包装在一个try-catch
块中,但这应该留给特殊情况,而这是正常的 - 每个第一次使用该应用程序的用户都会遇到这种情况。因为第一次,所以try
每次都 ing 似乎是错误的。
那么正确的解决方案是什么?
这是代码:
并这么称呼:
c# - c#如何将组合框SelectedIndex链接到ApplicationSettings
在 Visual Studio 设计器(我使用 2012)中,无法将 ApplicationSettings 机制链接到 SelectedIndex 属性(仅限文本)。
可以改用什么解决方法?
抱歉,如果我的问题违反了 StackOverflow 规则。我搜索了我的问题,但没有找到确切的答案。
我不只知道如何自定义代码 ApplicationSettings。我总是在设计模式下使用此功能 - 我的文本框的链接文本属性,然后使用 Properties.Settings.Default.Save() 保存它,在 Form_Load 上我使用 Properties.Settings.Default.SomeName 加载保存的值。除此之外的一切都是由 VisualStudio 完成的,我不知道究竟要根据我的需要改变它的行为。
我确信这个问题对初学者很有用
c# - 保存用户范围设置 (ApplicationSettingsBase)
当用户退出配置表单(不是我的主表单)时,我正在尝试保存我的应用程序设置。它将设置保存在内存中,因为当我再次打开表单时,我配置的数据仍然存在,但不会将其保存到磁盘。这是将 xml 文件保存到的文件路径
C:\Users\david_000\AppData\Local[公司名称][项目名称]\1.0.0.0.
我在实现 ApplicationSettingsBase 文件的类中使用 [UserScopedSetting()],因此它应该在我调用时保存,
这是我使用 ApplicationSettingsBase 的课程
我的 BindingList 包含多个属性,并且该类使用 [Serializable] 属性。但是当我保存 xml 文件时,它保存的只是:
对此的任何建议将不胜感激。
c# - ApplicationSettingsBase 没有按预期序列化我的类
我正在尝试使用 ApplicationSettingsBase 来持久化我的课程。我这里有一个例子。我也尝试过不使用 ApplicationSettingsBase,这似乎工作正常。该示例在下面。
有人可以给我一些关于使用 ApplicationSettingsBase 来保持我的完整类层次结构的指导吗?谢谢谢谢。
我在第一个示例中保存了一些中间实例来尝试解决这个问题。我不打算在最终实施中这样做。我可以在这里看到它会保存中间数据,但不会保存嵌套数据。我只是不明白。
运行后的 user.config:
以下是未尝试使用ApplicationSettingsBase 的示例:
运行后的 user.config:
c# - 从字符串加载 Properties.Settings.Default
我开始使用Properties.Settings.Default
为我的应用程序保留设置,但现在要求已经改变,我们需要将这些设置保存在 SQL 数据库中,而不是磁盘上的文件中。我必须将 xml 加载到一个字符串,然后以某种方式从该字符串初始化设置。
我宁愿不必丢弃所有相关的代码Properties.Settings.Default
并使用不同的类。我需要类似void Properties.Settings.Default.LoadSettingsXmlFromString(string xml)
和的东西string Properties.Settings.Default.SaveSettingsToString()
。然后我会自己处理存储和加载字符串。
想到的一个简单的解决方案是从服务器检索设置,然后覆盖Properties.Settings.Default
将加载的文件,同样用于保存。
我还发现Loading Properties.Settings from a different file at runtime,但我的问题有点不同,因为我根本没有从磁盘上的文件加载设置。
编辑:根据如何更改.NET用户设置位置,似乎甚至可以获取文件位置以便我可以覆盖它并不容易
c# - ApplicationSettingsBase ConfigurationErrorsException 多个程序集
更新的问题(正确指出问题)
我正在使用一个库,它实现了一个派生自ApplicationSettingsBase
.
现在我在另一个项目中使用这个库。这些项目还包含至少一个派生自ApplicationSettingsBase
.
现在这两个类都源自ApplicationSettingsBase
将它们的属性存储到同一个user.config
文件。应用程序和 lib 使用多个任务,如果两个任务同时执行(例如)属性设置器,我得到以下异常。两个任务都尝试同时执行写操作......
我可以用以下场景重现它:
现在我正在寻找一种实现来保护对user.config
文件的访问。
解决方案:
我找到了一个可行的解决方案。CustomApplicationSettingsBase
锁定并发任务。
public sealed class GlobalLibSettings : CustomApplicationSettingsBase
和
public sealed class ProjectSettings : CustomApplicationSettingsBase
和:
谢谢你的帮助!