将StreamReader转换为流
本文关键字:转换 StreamReader | 更新日期: 2023-09-27 18:01:27
protobuff.net中的Deserialize方法接受流作为参数。在我使用FileStream并通过它之前,它工作了,但现在我必须使用StreamReader,因为我正在将应用程序移植到windows商店/手机上。我得到以下错误:
error CS1503: Argument 1: cannot convert from 'System.IO.StreamReader' to 'System.IO.Stream'
这也是一个unity3d项目我得到的另一个错误是:
error CS4028: 'await' requires that the type 'Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFolder>' have a suitable GetAwaiter method. Are you missing a using directive for 'System'?
这很奇怪,因为我在#if NETFX_CORE #endif
中包装了代码以下是我正在使用的include:
#if NETFX_CORE
using System.IO;
using System.Threading.Tasks;
using Windows.Storage;
#endif
不能,逻辑上- StreamReader
用于文本数据,而protobuf数据用于二进制数据。目前还不清楚您从哪里获得StreamReader
,但您应该寻找为二进制数据设计的api。
在实践中,您可能能够使用StreamReader.BaseStream
来获取底层流,但您不应该创建StreamReader
来读取非文本数据…构造阅读器可能会尝试从流中读取文本数据,如果找不到则会报错。