2012-01-22 70 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設置。

相關問題