我在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文档?
答案 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
对象的包装器。您应该创建FileStream
,MemoryStream
或其他类型的Stream
并将其传递给StreamWriter
构造函数。
在.NET Framework中,接受字符串的构造函数实际上会在引擎盖下创建FileStream
。