2011-06-11 65 views
0

我用Visual Studio 2010開始我的應用程序。 然後我將一些文件添加到我的應用程序中,並將每個文件類型的圖標DOC,DOCX,XLS,PDF等被當圖標添加到我關閉應用程序的資源通過打開一個Resource.resx文件,而不是創建一個覆蓋以前的Resource.resx文件的文件

private void DumpTempResourceToRealResourceFile(IDictionary<String, Bitmap> tempResource) 
     { 

      using (ResXResourceWriter writer = new ResXResourceWriter("IconImages.Resx")) 
      { 
       foreach (KeyValuePair<String,Bitmap> item in tempResource) 
       { 
        writer.AddResource(item.Key, item.Value);      
       } 
       writer.Generate(); 
      }    
     } 

添加字符串/位圖鍵/值對我IconImages.Resx文件。

然後我用VS 2010中重新開始我的應用程序和我的文檔的應用程序中添加一些文件。文件類型再次寫入我的IconImages.Resx。 然後關閉我的應用程序並檢查\ bin \文件夾下的IconImages.Resx文件,之前保存的圖像消失了,現在我有了新的/不同的圖像。

爲什麼我不能說打開.resx文件並追加的東西呢?每次我創建一個名爲「IconImages.Resx」的ResourceWriter對象時,我會覆蓋之前添加的內容,這很愚蠢。

如何將我的IconImages.Resx文件留在一個應用程序會話活着而不被其他的東西,我想補充被覆蓋?

+0

隨意的名義來解釋「作家」從字面上看,它不知道如何閱讀。該類在您的場景中沒有用處,它被設計爲實現.NET工具。 – 2011-06-11 20:41:43

+0

在我的方案中沒有用?你能否解釋我應該怎麼做?我的用戶可以將文檔/文件添加到列表框中,在每個文檔旁邊顯示保存的文件類型圖標 - 在某處並且要討論某處... - 現在我選擇了.resx文件,但是您說那不太好?那麼什麼是保存字符串/位圖鍵/值對的更合適的方式? – msfanboy 2011-06-11 21:35:38

+0

Windows目錄?一個.zip壓縮文件?你根本沒有解釋爲什麼你想這樣做,我無法猜測正確的答案。 – 2011-06-11 21:37:27

回答

0

我現在有一個查找表「FiletypeImage」與文件類型「的.docx」和BLOB又名原始二進制數據。這個表格在我的documentService中被檢索並被緩存在一個靜態變量中。使用由我的DocumentListViewModel調用的Get和Add方法。它的速度非常快THX對於SQLite :)

1

我沒有用過ResXResourceWriter,但通常* Writer類簡單地從頭開始寫一個數據文件。

如果您想「附加」新數據,您通常必須使用* Reader類將現有數據反序列化到內存中,然後合併/添加您希望的任何新數據,並使用* Writer對象然後將結果數據寫回。看看ResXResourceReader看看它是否支持你需要做到這一點。

+0

首先你的答案很混亂。其次我在檢查資源時已經使用ResXResourceReader是已經添加了某個文件的擴展名。 – msfanboy 2011-06-11 21:35:16

相關問題