11

我正在使用可移植类库编写一个 ConfigManager 类。PCL 支持StreamReaderStreamWriter我想使用的类,但这些类的 PCL 版本不支持在构造期间传入字符串。PCL 也不支持reader.Close()and writer.Close()。最后它不支持FileStream该类。

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

  1. 我怎样才能让StreamReaderStreamWriter类在 PCL 中工作?
  2. 如何stream使用 PCL 创建新的?
  3. 在 PCL 中加载和保存文件还有哪些其他选择?
4

2 回答 2

8

使用Dispose()代替Close()(或将所有内容包装在 using 语句中)。我们已Close()在 Windows 应用商店应用程序和较新的 PCL 中隐藏/删除,因为它做同样的事情,人们会对调用哪一个感到困惑。

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

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

于 2013-08-09T00:45:29.393 回答
2

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

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

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

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

如果有人有除此之外的解决方案,我很想听听;还想知道.Close()PCL 中的方法。

于 2013-08-07T18:03:44.037 回答