代码之家  ›  专栏  ›  技术社区  ›  Christopher Klewes

如何从c_中的resx中删除资源条目?

  •  3
  • Christopher Klewes  · 技术社区  · 15 年前

    我知道如何以编程方式检索和创建.resx文件中的资源项。我正在使用 ResourceWriter 以及 ResourceReader 对于那个方法。但现在我想清理.resx文件中的几个项目,并删除它们。我怎样才能做到?

    2 回复  |  直到 7 年前
        1
  •  6
  •   Sam Chad    10 年前

    使用 ResXResourceReader ResXResourceWriter 类。

    使用读卡器读取resx并将其输入到编写器中,省略要删除的条目。

        2
  •  0
  •   gabrielesteveslima    7 年前

    在我的工作中,我必须从一个文化文件中删除标准文化文件中的内容。

    代码如下:

    private void ResolveConflicts()
            {
                using (var cultura = new ResXResourceReader(CulturaPath))
                using (var culturaCustom = new ResXResourceReader(CulturaCustomPath))
                {
                    Resources = (from cc in culturaCustom.Cast<DictionaryEntry>()
                                 where !(from c in cultura.Cast<DictionaryEntry>()
                                         select new { c.Key, c.Value })
                                 .Contains(new { cc.Key, cc.Value })
                                 select new Tuple<string, string>(
                                      cc.Key.ToString(),
                                      cc.Value.ToString())).ToList();
                }
    
                ReWriteCustomFile();
            }
    
            private void ReWriteCustomFile()
            {
                using (var writer = new ResXResourceWriter(CulturaCustomPath))
                {
                    Resources.ForEach(r => writer.AddResource(r.Item1, r.Item2));
    
                    writer.Generate();
                    writer.Close();
                }
            }
    

    使用此代码,它只记录在与默认值不同的自定义区域性中。

    希望有帮助,谢谢!