【发布时间】:2018-05-17 00:30:14
【问题描述】:
Newtonsoft.Json 需要 TextWriter 才能创建 JsonTextWriter 的实例,并且它需要由多个类共享。我正在尝试为当天决定运行的所有测试重复使用相同的结果实例。
因此,稍后我在编写测试结果时需要在代码中使用 JsonTextWriter 实例。
由于可共享性,我需要找到一种方法来打开现有文本文件并将其分配一个 FileStream 并将其放入 TextWriter,这样我就可以创建我的 JsonTextWriter。
但是如何使用 FileStream 创建 TextWriter 的实例?
当我尝试创建一个新的 TextWriter 时,我收到错误,它是一个抽象类。
当我尝试使用 File.OpenText(path) 时,我无法将文件设置为 FileShare.ReadWrite。
这是我目前所拥有的:
private void InitializeJSONResultWriter()
{
string methodName = Utils.getCurrentMethod();
Log("In: " + methodName);
if (textWriter == null)
{
//textWriter = File.CreateText(ResultsPath);
FileStream strm = File.Open(ResultsPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
TextWriter textWriter = File.CreateText(ResultsPath);
// ? ugh
_jsonTextWriter = new JsonTextWriter(textWriter);
}
}
【问题讨论】: