我正在尝试从字符串字典创建.resx文件。幸运的是.Net框架有一个ResXResourceWriter类。唯一的问题是,当我使用下面的代码创建文件时,我生成的resx文件的最后几行丢失了。我检查了我的词典,它包含了我期望的所有字符串对。
public void ExportToResx(Dictionary<string,string> resourceDictionary, string fileName)
{
var writer = new ResXResourceWriter(fileName);
foreach (var resource in resourceDictionary)
{
writer.AddResource(resource.Key, resource.Value);
}
}
不幸的是,显示整个resx文件有点困难,因为它有2198行(应该有2222行),但这是最后一点:
...
2195 <data name="LangAlign_ReportIssue" xml:space="preserve">
2196 <value>Report an Issue</value>
2197 </data>
2198 <data name="LangAlign_Return
顺便说一句,请注意文件在“LangAlign_Return”中的“n”末尾切断。该字符串应为“LangAlign_ReturnToWorkspace”。该文件也应该在第2222行结束。
答案 0 :(得分:3)
试试这个:
public void ExportToResx(Dictionary<string,string> resourceDictionary, string fileName)
{
using(var writer = new ResXResourceWriter(fileName))
{
foreach (var resource in resourceDictionary)
{
writer.AddResource(resource.Key, resource.Value);
}
}
}
您需要在编写器上调用Dispose()。 :)
答案 1 :(得分:0)
“LangAlign_ReturnToWorkspace”实际上是这么说的,还是“LangAlign_Return ToWorkspace”?
(在Return和ToWorkspace之间有空格或非打印字符?)
可能是因为错误地生成了elememt名称?
只是一个想法。