1

我可能不是第一个面临这个问题的人,但我在任何地方都找不到正确的答案。

我有一个使用强类型数据集的 Windows 窗体应用程序。设计器使用应用程序设置中定义的连接字符串。问题是这个设置被定义为应用程序范围(因此是只读的),我需要能够在运行时更改它。在设置设计器中,当设置类型为“连接字符串”时,无法将范围更改为“用户”。并且生成的数据集不提供允许在运行时选择连接字符串的构造函数,它始终使用设置中的那个。

你知道为什么 MS 引入了这个限制吗?你有什么解决方法吗?

我目前正在使用一种非常难看的解决方法:我将设置的类型更改为“字符串”,并将范围更改为“用户”。这样,我可以在运行时更改它并且它工作正常。麻烦的是,当我需要在设计器中修改数据集时,我必须将其改回“ConnectionString”,否则设计器不起作用。

提前感谢您的建议!

4

1 回答 1

5

可以在运行时更改 ApplicationScope 设置的值。虽然生成的强类型属性是只读的,但您可以使用:

Properties.Settings.Default["App1"] = "bbb";

之后,Properties.Settings.Default.App1 将读取“bbb”;

这应该可以让设计时间设置保持不变。

您不能Settings.Default.Save()用于 ApplicationScope 设置,但这是有意的。普通用户没有权限写入 Program Files 的子文件夹

于 2009-06-06T13:51:56.313 回答