2011-04-12 112 views
1

所以這就是我想要實現的。我在註冊表中爲每個特定過程都有幾個日誌記錄鍵。使用C#註冊表創建對象#

我想作一個對象從這些程序開始,所以當我需要我可以訪問值時,所以基本上他們都預裝。

這裏是我有迄今我的課:

class LoggingInfo 
{ 

    //field data 

    private String LogName; 
    private int DailyFile; 


    // Constructors. 
    public LoggingInfo() { } 
    public LoggingInfo(String LogName, int DailyFile) 
    { 
     this.LogName = LogName; 
     this.DailyFile = LogDailyFile; 

    } 

} 

那麼,如何從註冊表的屬性,說LoggingInfo對象?在我的主程序中,我需要傳遞什麼?

+0

很難告訴你想要什麼。這裏沒有問題。 – 2011-04-12 20:22:49

+0

我想從Windows註冊表中創建對象。 – Andy12 2011-04-12 20:25:29

+0

註冊表中不包含對象 – 2011-04-12 20:28:32

回答

0

你想是這樣的:無論你想用字符串

private const string m_sKeyPathString = "XXX\\YYY"; 
private const string m_sKeyVal = "MY_VAL"; 

RegistryKey key = Registry.CurrentUser.OpenSubKey(m_sKeyPathString); 

if(key == null) 
    key = Registry.CurrentUser.CreateSubKey(m_sKeyPathString); 

if(key.GetValue(m_sKeyVal) != null) 
    string sMyString = (string)key.GetValue(m_sKeyVal); 

然後你可以做(​​轉換爲int,雙,日期等)

1

退房的Microsoft.Win32命名空間,特別是類的RegistryKey。

你將需要手動連接到註冊表(可能通過一個循環?)給你在哪裏保存你的鑰匙和實例類爲您找到每個鍵的註冊表項。

+0

我知道。我有幾個關鍵locaitons,我想我的對象中propertys我想創建使用。 – Andy12 2011-04-12 20:31:02

+0

沒有自動的過程,變成註冊表項爲對象。你將不得不打開你的根密鑰,並通過從每個鍵有循環,創建類的實例和初始化屬性。 – Efren 2011-04-12 20:34:25

0

這個link應該有幫助。而不是顯示值,將它們設置在您的對象中。

0

由於@ 0A0D表示,註冊表不存儲對象。但是,它可以存儲字符串。如果您序列對象JSON或XML字符串,並將其存儲在註冊表中,以後可以從這些相同的密鑰加載的字符串值,然後反序列化串入的對象。

您可能要搜索MSDN有關序列化的更多信息。例如,DataContractSerializer文章將是一個很好的開始。