2011-06-11 77 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