2

文字列の辞書から.resxファイルを作成しようとしています。幸い、.NetFrameworkには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行で終了する必要があります。

4

2 に答える 2

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()を呼び出す必要がありました。:)

于 2010-06-01T21:25:22.620 に答える
0

「LangAlign_ReturnToWorkspace」は実際にそれを言っているのですか、それとも「LangAlign_ReturnToWorkspace」ですか?

(ReturnとToWorkspaceの間にスペースまたはおそらく印刷されない文字がありますか?)

おそらくそれが要素名が間違って生成されている原因ですか?

ただのアイデア。

于 2010-06-01T19:56:44.703 に答える