System.IO.StreamWriter在.netcore 1.1中没有字符串构造函数

时间:2017-06-07 19:17:47

标签: asp.net constructor .net-core visual-studio-2017 streamwriter

我在VS2017社区版下的.NET Core V1.1中迈出了我的第一步。

我将一些代码块移植到一个使用System.IO.StreamWriter的ASP.NET Core项目中:

string fileName = "Hello_world.txt";

using (StreamWriter file = new StreamWriter(fileName))
{   
    // do stuff...
}

有了这个,我得到一个编译器错误:

error CS1503: Argument 1: cannot convert from 'string' to 'System.IO.Stream'

另一方面,.NET API文档明确指出可以使用带字符串的构造函数,请参阅here

有人可以告诉我为什么没有接收字符串的构造函数以及在哪里找到正确的API文档?

3 个答案:

答案 0 :(得分:2)

使用字符串参数的StreamWriter构造函数仅在.NET Core 2.0及更高版本中可用。您可以在https://apisof.net/catalog/System.IO.StreamWriter..ctor(String)

查找可用性

在此期间,您可以创建一个FileStream,这正是what the constructor taking a string does

    string path = "foo.txt";
    using (var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, FileOptions.SequentialScan))
    using (var streamWriter = new StreamWriter(stream, System.Text.Encoding.UTF8, 1024, false))
    {
        streamWriter.WriteLine("hey");
    }

答案 1 :(得分:1)

您的问题可以通过使用 .NET Framework 项目而不是 .NET Core 项目来解决。

所有11个构造函数都应该在.NET Framework项目中可用。

这为我解决了。

答案 2 :(得分:0)

StreamWriter对象实际上是Stream对象的包装器。您应该创建FileStreamMemoryStream或其他类型的Stream并将其传递给StreamWriter构造函数。

在.NET Framework中,接受字符串的构造函数实际上会在引擎盖下创建FileStream