我试图从字符串字典创建一个.resx文件。幸运的是.Net框架有一个ResXResourceWriter类。唯一的问题是,当我使用下面的代码创建文件时,我生成的resx文件的最后几行缺少。我检查了我的字典,它包含我期望的所有字符串对。ResXResourceWriter截断文件结尾
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
BTW,请注意文件在“LangAlign_Return”中的“n”结尾截断。该字符串应为“LangAlign_ReturnToWorkspace”。该文件也应该在2222行结束。
我只是再次检查了这个建议,但在此字符串之前或之后没有非打印字符。当我读到你的建议时,我有一半认为这是问题。 谢谢, Aaron – 2010-06-01 20:42:15
啊,太糟糕了,值得一试。如果您只将该值放入字典中,它是否会出现相同的错误? – Andy 2010-06-01 20:45:01
我编辑了我用来创建Dictionary的XML文件(确保任何奇怪的字符保留)到犯规条目。我还保留了所有低于此值的其他条目。该文件在其他位置和XML属性中间被切断。所以,我知道这不是我的字符串,因为它在由ResXResourceWriter类创建的位置切断。嗯,我想知道这是怎么回事。我的代码不能更简单。 – 2010-06-01 21:09:52