我正在使用Portable Class Libraries编写一个ConfigManager类。 PCL支持我想要使用的StreamReader
和StreamWriter
类,但这些类的PCL版本不支持在构造期间传入字符串。 PCL也不支持reader.Close()
和writer.Close()
。最后,它不支持FileStream
类。
所以我正在寻找以下任何一个问题的答案:
StreamReader
和StreamWriter
课程正常运作
在PCL?stream
? 答案 0 :(得分:8)
使用Dispose()
代替Close()
(或者只是将所有内容包装在using语句中)。我们在Windows应用商店应用和更新的PCL中隐藏/删除了Close()
,因为它做了同样的事情,人们会对要拨打的电话感到困惑。
考虑使用PCL Storage进行跨平台文件系统访问。
以下是您可能想要参考的一些博客文章,了解如何在PCL中处理特定于平台的功能:
答案 1 :(得分:2)
在这里找到答案(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(Phone)运行时类 Windows.Storage打开文件,你可以共享代码(但不是 二进制)通过链接两个项目之间的代码文件。见分享 添加为链接的代码。
请参阅最大化Windows Phone 8和Windows 8之间的代码重用以获取更多信息 共享代码的技术。
如果有人有这样的解决方案,我会有兴趣听到它;也想知道PCL中的.Close()
方法。