如何在C#中从resx中删除资源条目?

时间:2009-10-09 09:13:34

标签: c# resources resx

我知道如何以编程方式在.resx文件中检索和创建资源条目。我正在使用ResourceWriterResourceReader来实现这种方法。但是现在我想清理.resx文件中的几个项目,并希望删除它们。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

使用ResXResourceReaderResXResourceWriter类。

使用阅读器阅读您的resx并将其提供给编写器,省略您要删除的条目。

答案 1 :(得分:0)

在我的工作中,我必须开发以从文化文件中删除我在标准文化文件中所拥有的内容。

代码是这样的:

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();
            }
        }

使用此代码,它仅在自定义文化中记录与默认值不同的内容。

我希望它有所帮助,谢谢!