2012-01-22 31 views
0

我有一个布尔,用户范围的设置。我通过一个名为Settings的引用类库访问它。这个类库与性能的模块:我在哪里用户范围设置的持久性出错?

Module AppSettings 
Public Property MyBooleanSetting() As Boolean 
    Get 
     Return My.Settings.MyBooleanSetting 
    End Get 
    Set(ByVal value As Boolean) 
     My.Settings.MyBooleanSetting = value 
     My.Settings.Save() 
    End Set 
End Property 
End Module 

我在设置类库的属性页中定义的设置。

当其他代码操纵设置,将使用如下代码:当代码运行这个工程

Settings.MyBooleanSetting=True 

。但是在应用程序重新启动后,新值不会被保留。 我哪里错了?

回答

2

保存你的呼吸家伙。代码毕竟工作。我在我的应用程序的Viewmodel中使用了另一个属性来缓存Setting.MyBooleanSetting,但我忘了在应用程序启动时读取它...

2

看过Using My.Settings in Visual Basic 2005 MSDN文章和这些MSDN ForumThreads后,我会说你需要验证哪个路径正在使用。

用户范围设置是特定于每个用户的。它们可以在运行时由应用程序代码安全地读取和设置。这些设置存储在user.config文件中。从技术上讲,每个应用程序每个用户有两个user.configs--一个用于非漫游,一个用于漫游。虽然Visual Basic 2005文档声明user.config文件将根据用户名(joe.config)命名,但事实并非如此。 user.config文件是在\ [本地设置]应用程序数据\\ \中创建的。其中:
•是用户数据目录,可能是非漫游(上面的本地设置)或漫游。
•是用户名。
•是CompanyNameAttribute值(如果可用)。否则,请忽略此元素。
•是AppDomain.CurrentDomain.FriendlyName。这通常默认为.exe名称。
•是基于散列可用证据的URL,StrongName或Path。
•是证据SHA1哈希从CurrentDomain云集,按优先顺序如下:
a.StrongName
b.URL

如果这些都不可用,使用.exe文件路径。

•是AssemblyInfo的AssemblyVersionAttribute设置。