我試圖從字符串字典創建一個.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