在没有资源的情况下写入RESX文件
本文关键字:RESX 文件 情况下 资源 | 更新日期: 2023-09-27 18:20:19
我使用ResXResourceWriter
和ResXResourceReader
来处理.resx
文件中的资源。为了"删除"一个资源,我从读取器中加载所有项目,只是不将该项目添加到编写器中。
每当我试图从文件中删除所有资源时,我都注意到一个问题:编写器抛出一个NullReferenceException
。简化代码示例。
var writer = new ResXResourceWriter(filename);
writer.Close();
在通过AddResource
添加资源之前,不会启动内部写入程序读取ResXResourceWriter
的源。这似乎意味着您不能拥有没有资源的.resx
文件。
这是故意的吗?我应该尝试一个"空"的资源文件吗?
或者有其他方法可以创建一个"空".resx
吗?
我从@Oguz-Oguz导出了我的解决方案。
每当没有资源时,我都会添加一个占位符元数据元素,以强制ResourceWriter创建必要的生成器结构。下次我生成.resx
时,如果有任何资源,我只是不添加该元数据项。
var writer = new ResXResourceWriter(filename);
m_resources.ForEach(writer.AddResource);
if (! m_resource.Any()) writer.AddMetadata("", "");
writer.Close();