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

发布于 2024-08-07 03:16:05 字数 150 浏览 4 评论 0原文

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

I know how to retrieve and create resource entries in an .resx file programmatically. I'm using the ResourceWriter and the ResourceReader for that approach. But now I want to clean up several items in my .resx file, and want to delete them. How can I achieve that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦晓ヶ微光ヅ倾城 2024-08-14 03:16:05

使用 ResXResourceReaderResXResourceWriter 类。

使用读取器读取您的 resx 并将其输入写入器,忽略要删除的条目。

Using the ResXResourceReader and ResXResourceWriter classes.

Read your resx using the reader and feed it into the writer, omitting the entries you want removed.

紫﹏色ふ单纯 2024-08-14 03:16:05

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

代码是这样的:

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

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

我希望它有帮助,谢谢!

In my work I had to develop to remove from a culture file what I had in a standard culture file.

The code is this:

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

With this code, it is recorded in the custom culture only what is different from the default.

I hope it helps, thanks!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文