Newtonsoft.Json需要一个TextWriter来创建JsonTextWriter的实例,并且它需要由多个类共享。我试图在我决定那天运行的所有测试中重复使用相同的结果实例。
因此,在编写测试结果时,需要稍后在代码中使用JsonTextWriter实例。
由于可共享性,我需要找到一种方法来打开现有的文本文件,并为其分配一个FileStream并将其放入TextWriter中,这样我就可以创建自己的JsonTextWriter了。
但是,如何使用TextWriter创建FileStream实例呢?
当我尝试创建一个新的TextWriter时,会发现它是一个抽象类。
当我尝试使用File.OpenText(路径)时,我不能将文件设置为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);
    }
}发布于 2018-05-17 00:38:19
TextWriter是一个抽象类,您可以使用从它继承的StreamWriter:
using (var stream = File.Open("somefile", FileMode.CreateNew))
{
    using (var sw = new StreamWriter(stream))
    {
        using (var jw = new JsonTextWriter(sw))
        {
            jw.WriteRaw("{}");
        }
    }
}https://stackoverflow.com/questions/50381731
复制相似问题