Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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#_.net_.net 4.0_Settings - Fatal编程技术网

C# .NET-存储应用程序设置的最佳方式

C# .NET-存储应用程序设置的最佳方式,c#,.net,.net-4.0,settings,C#,.net,.net 4.0,Settings,可能重复: 你好。 在.Net 4.0中存储应用程序设置的最佳方法是什么? Windows注册表?应用程序。设置 如果我想更新程序并保留旧版本的设置(新版本可以有更多的新设置,删除一些旧设置),该怎么办 如果要存储自定义对象的集合,该怎么办 我知道有类似的问题,但它是关于.NET2.0的。也许在4.0中有一些保存设置的新方法 提前谢谢。我认为.NET4在应用程序设置方面没有添加任何新内容 有关.NET4的新增功能,请参见此。 MS在过去的两个操作系统版本中一直试图让用户退出注册表。另外,正如@

可能重复:

你好。 在.Net 4.0中存储应用程序设置的最佳方法是什么? Windows注册表?应用程序。设置

如果我想更新程序并保留旧版本的设置(新版本可以有更多的新设置,删除一些旧设置),该怎么办

如果要存储自定义对象的集合,该怎么办

我知道有类似的问题,但它是关于.NET2.0的。也许在4.0中有一些保存设置的新方法


提前谢谢。

我认为.NET4在应用程序设置方面没有添加任何新内容

有关.NET4的新增功能,请参见此。

MS在过去的两个操作系统版本中一直试图让用户退出注册表。另外,正如@Scott Anderson在评论中所说的那样,.NET4.0在这方面没有什么显著的变化

如果这是一个没有备份数据存储的本地应用程序,请继续使用app.config文件


如果您想存储本地数据,那么我建议您使用类似SQLLite或类似的机制,在这种机制中,您可以轻松地创建表并根据需要进行查询。这也有助于版本控制。

应用程序。设置无疑是一种方法-与注册表设置不同,无论操作系统、用户级别或从终端服务客户端运行应用程序,它都可以工作

过去,我创建了一个名为MigrateUserSettings的属性,并使用它来帮助我管理用户设置的迁移

默认情况下,我在应用程序中将此属性的值设置为true。在启动时,如果我发现它曾经被设置为true,我会尝试迁移设置,然后将该值设置为false(在升级应用程序之前,它将保持false

例如:

if (Settings.Default.MigrateUserSettings)
{
    Settings.Default.Upgrade();
    Settings.Default.MigrateUserSettings = false;
    /* Custom handling of migrating specific settings (if required) here
       e.g. if any have been renamed or if the possible options have changed. */
    Settings.Default.Save();
}

@斯科特·安德森:我要的是.NET4.0。你给我的链接大约是2.0。4.0没有什么新东西。或3.0或3.5与此相关的.NET 4.0中没有任何更改。重复问题仍然有效,建议在.NET 4.0中使用。请查看System.Configuration命名空间。应用程序设置非常适合小值。如果你想在系统中存储复杂的对象,配置类可以帮你很多。您可以定义自己的标记以在Web.Config或App.Config文件中使用。MigrateUserSettings如何设置回true?这是我不理解的策略的一部分,因为在我的测试(使用.NET 4.0和ClickOnce)中,发布新版本的程序不会使设置返回默认值。嗯,很抱歉,我不能回答这个问题,它对我有效(我想即使我只是直接运行新版本,而不“安装”)。也许它依赖于某种东西,比如一个构建/文件版本被碰撞,而这个版本不是?在哪个名称空间中是
Settings
class?