往resx中添加或查找指定资源都不难实现,就是不知道如何用代码删除resx中的指定资源。
还有就是如何把resx与xml关联起来。请高人指教,不甚感激!

解决方案 »

  1.   

    没听说过在代码中删除的,除了在IDE里面删除不要的资源。不想用的资源不用便是,没必要删除。RESX就是XML,不知道你想怎么和XML关联。
      

  2.   

    感谢楼上的朋友
    用ResourceManager这个类获取程序集,这个类提供了GetString(),GetObject(),AddResource()等等方法。
    可以访问资源文件中指定的结点的值。
    按楼上朋友的说法就是不能通过代码的方式把RESX中的XML转换为流吗?
    如果能转换为流,那我就好对资源文件进行操作了,那样就方便对这个资源文件进行管理了。
    有知道的朋友麻烦指教下 谢谢
      

  3.   

    在.NET 1.1才要自己写ResourceManager来读取资源,还要做麻烦的强制转换。从.NET 2.0开始,IDE支持就更加方便了。在工程面板选择resx文件,然后属性面板里面在Custom Tool里面输入ResXFileCodeGenerator,回车或者在工程面板右键单击resx文件执行Run Custom Tool,就会出现一个自动生成的cs文件。你看看那个cs文件吧,你要的东西里面都有了,好用多了。
      

  4.   

    我个人感觉,资源文件一旦在设计时修改好,就不应该在运行中修改,否则微软都不会这样设计resx这种文件。所以没必要用代码修改resx文件。resx文件在工程编译时将被resgen.exe编译为二进制的resources文件,随后连接到exe或者dll里面,你看运行时去改变这样的东西有必要吗?
      

  5.   

    我们老大要我用代码实现对资源增删改查的操作,我也没办法。
    网上也搜不到有关这方面的资料。
    我也很同意Lextm的观点,身不由己啊
      

  6.   

    AddResource()这个方法是ResourceWriter这个类提供的。
    初始化ResourceWriter这个类时需要一个参数,该参数为输出文件名。
    这意味着我只能往这个指定的名称里面添加资源吗?
    编译后在DEBUG目录下会有该文件,这样的话这个文件没有被嵌入到该项目的DLL中去啊
    能直接往工程里的资源文件中添加资源吗?因为他是能被嵌入到DLL的。
      

  7.   

    从我个人的理解你们老大要的效果就是类似IDE编辑Resx文件的这种效果了。这个也是可以做的,像你说的用ResourceWriter就好了,但是肯定没办法嵌入到dll里面去,因为嵌入只能在编译dll的时候做到。一旦嵌入,资源部分就是只读的啦——因为成了dll的一部分。
      

  8.   

    每个资源文件中的键值对数目可能不一样,能得到资源文件的所有key的集合吗?
    ResXDataNode这个类好象只能获取DEBUG目录下的资源文件的key的集合,有什么方法获取工程中的资源文件的key的集合吗?
    我现在头都大了 郁闷的要死 累。。 要逼疯了
      

  9.   

    要不你新建个ResX文件,用ResourceManager复制要保留的所有键/值对,就相当于把不想要的删掉了。