繁体   English   中英

StreamReader和可移植类库

[英]StreamReader and Portable Class Library

我正在使用Portable Class Libraries编写ConfigManager类。 PCL支持我想要使用的StreamReaderStreamWriter类,但这些类的PCL版本不支持在构造期间传入字符串。 PCL也不支持reader.Close()reader.Close() writer.Close() 最后它不支持FileStream类。

所以我正在寻找以下任何一个问题的答案:

  1. 如何让StreamReaderStreamWriter类在PCL中运行?
  2. 如何使用PCL创建新stream
  3. 还有什么其他的替代品可以在PCL中加载和保存文件?

使用Dispose()而不是Close() (或者只是在using语句中包装所有内容)。 我们在Windows应用商店应用和更新的PCL中隐藏/删除了Close() ,因为它做同样的事情,人们会对哪一个调用感到困惑。

考虑使用PCL Storage进行跨平台文件系统访问。

以下是您可能想要参考的一些博客文章,了解如何在PCL中处理特定于平台的功能:

在这里找到了答案(Rob Caplan): http//social.msdn.microsoft.com/Forums/windowsapps/en-US/386eb3b2-e98e-4bbc-985f-fc143db6ee36/read-local-file-in-portable -library#386eb3b2-e98e-4bbc-985f-fc143db6ee36

无法在Windows应用商店应用和Windows Phone 8应用之间轻松进行文件访问。 您必须使用特定于平台的代码,才能打开文件并获取流。 然后,您可以将流传递到PCL。

由于Windows应用商店应用和Windows Phone 8应用使用与Windows.Storage基本相同的Windows(电话)运行时类来打开文件,因此您可以通过链接两个项目之间的代码文件来共享代码(而不是二进制文件)。 请参阅使用添加为链接共享代码。

有关共享代码的更多技巧,请参阅最大化Windows Phone 8和Windows 8之间的代码重用。

如果有人有这个以外的解决方案我会有兴趣听到它; 也想知道PCL中的.Close()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM