2015-07-11 48 views
0

我試圖用對象數據源連接resx文件。但是,當我試圖添加一個值時,它不會添加,但將取代一個存在的值。有人能給我一個提示嗎?我究竟做錯了什麼?用ObjectDataSource向resx文件添加值的問題

 Dictionary<string, string> resources = new Dictionary<string, string>(); 

     public Dictionary<string, string> SelectIndex() 
     {    
      using (ResXResourceReader resxreader = new ResXResourceReader(filename)) { 
       foreach (DictionaryEntry entry in resxreader) {      
        resources.Add(entry.Key.ToString(), entry.Value.ToString()); 
       } 
      } 
      return resources; 
     } 

     public void AddIndex(Data data) 
     { 
      using (ResXResourceWriter resx = new ResXResourceWriter(filename)) {     
       resx.AddResource(data.Key, data.Value);     
      } 
     } 

回答

0

問題是ResXResourceReader內部使用Dictionary,它可以從你的foreach循環中看到。在Dictionary中,每個鍵值都應該是唯一的,如果您使用相同的鍵添加資源,它將更新這些鍵的值。

MSDN article about ResXResourceReader

MSDN article about Dictionary

+0

編輯時,我使用不同的密鑰值。當編輯時,即使文件包含3個或更多值(全部不同),它也會將其全部替換爲新值。 – renchan