ResXResourceWriter Отрубает конец файла - PullRequest
2 голосов
/ 01 июня 2010

Я пытаюсь создать файл .resx из словаря строк. К счастью, .Net Framework имеет класс 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

Кстати, обратите внимание, что файл обрезается прямо в конце этого «n» в «LangAlign_Return». Строка должна читать «LangAlign_ReturnToWorkspace». Файл также должен заканчиваться строкой 2222.

Ответы [ 2 ]

3 голосов
/ 02 июня 2010

Попробуйте это:

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 () для писателя. :)

0 голосов
/ 01 июня 2010

Действительно ли "LangAlign_ReturnToWorkspace" говорит это, или это "LangAlign_Return ToWorkspace"?

(с пробелом или, возможно, непечатным символом между Return и ToWorkspace?)

Может быть, это вызывает неправильное генерирование имени элемента?

Просто идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...