1

我正在尝试创建一个 resx 文件并将其写入流,以便我可以将其作为字符串返回,而不是立即将其保存到文件中。但是,当我尝试读取该流时,它是空的。我在这里做错了什么?我确实验证了条目不为空。我实际上可以使用 ResXResourceWriter 构造函数将其成功保存到磁盘,但我试图避免使用临时文件。另外,我可以看到循环前的流为 0k,循环后的长度约为 8k。

using (var stream = new MemoryStream())
{
    using (var resx = new ResXResourceWriter(stream))
    {
        // build the resx and write to memory
        foreach (var entry in InputFile.Entries.Values)
        {
            resx.AddResource(new ResXDataNode(entry.Key, entry.Value) { Comment = entry.Comment });
        }

        var reader = new StreamReader(stream);
        var text = reader.ReadToEnd(); // text is an empty string here!

        return null;
    }
}
4

1 回答 1

2

您需要在尝试读取之前刷新并重置输出/流。这应该工作,使用Generateand Position

resx.Generate();
stream.Position = 0;
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();
return text;
于 2013-09-23T18:13:42.940 回答