编写没有资源的RESX文件

时间:2015-11-02 01:36:13

标签: c# .net resx

我正在使用ResXResourceWriterResXResourceReader来处理.resx文件中的资源。为了“删除”一个资源,我从阅读器加载了所有项目,只是不要将它添加到编写器。

每当我尝试从文件中删除所有资源时,我都注意到了一个问题:作者抛出NullReferenceException。示例简化代码。

var writer = new ResXResourceWriter(filename);
writer.Close();

在通过ResXResourceWriter添加资源之前,不会启动AddResource .resx内部编写器。这似乎暗示您不能拥有没有资源的.resx文件。

这是故意的,我应该尝试使用“空”资源文件吗?

或者是否有其他方法可以创建“空”{{1}}?

1 个答案:

答案 0 :(得分:0)

我从@ Oguz Oguz派生了我的解决方案。

每当没有资源时,我就会添加一个占位符元数据元素来强制ResourceWriter创建必要的生成器结构。下次我生成.resx如果有任何资源我就不添加该元数据项。

var writer = new ResXResourceWriter(filename);
m_resources.ForEach(writer.AddResource);
if (! m_resource.Any()) writer.AddMetadata("", "");
writer.Close();