C# ResXResourceWriter删除文件的结尾
我正在尝试从字符串字典创建一个.resx文件。幸运的是.Net framework有一个ResXResourceWriter类。唯一的问题是,当我使用下面的代码创建文件时,生成的resx文件的最后几行丢失了。我查了查字典,它包含了我所期望的所有字符串对C# ResXResourceWriter删除文件的结尾,c#,.net,resx,C#,.net,Resx,我正在尝试从字符串字典创建一个.resx文件。幸运的是.Net framework有一个ResXResourceWriter类。唯一的问题是,当我使用下面的代码创建文件时,生成的resx文件的最后几行丢失了。我查了查字典,它包含了我所期望的所有字符串对 public void ExportToResx(Dictionary<string,string> resourceDictionary, string fileName) { var writer = new ResXRe
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);
}
}
public void exportoresx(字典资源字典,字符串文件名)
{
var writer=新的ResXResourceWriter(文件名);
foreach(resourceDictionary中的var资源)
{
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
。。。
2195
报告一个问题
2197
2198是“LangAlign_ReturnToWorkspace”真的这么说,还是“LangAlign_ReturnToWorkspace”
(在Return和ToWorkspace之间使用空格或非打印字符?)
也许这是导致elememt名称生成错误的原因
只是个主意。试试这个:
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);
}
}
}
public void exportoresx(字典资源字典,字符串文件名)
{
使用(var writer=newresxresourceswriter(文件名))
{
foreach(resourceDictionary中的var资源)
{
writer.AddResource(resource.Key、resource.Value);
}
}
}
您需要在编写器上调用Dispose() 我只是仔细检查了这个建议,但是在这个字符串的前后没有非打印字符。当我读到你的建议时,我有点预料到这是个问题。谢谢你,AaronAh,太糟糕了,值得一试。如果只将此值放入字典中,是否会出现相同的错误?我编辑了用于创建字典的XML文件(确保保留任何奇怪的字符),直到出现问题的条目。我还保留了下面的所有其他条目。文件在一个不同的位置和中间的XML属性中被切断。因此,我知道它不是我的字符串,因为它在ResXResourceWriter类创建的位置断开。嗯,我想知道这是怎么回事。我的代码再简单不过了。