所以我正在编写一个面向 .NET 4.5、Windows 8 和 Windows Phone 8 的可移植类库。我正在尝试从作为构建内容的项目的一部分的文本文件中读取。我看到 StreamReader 在 PCL 中可用,但在给定文件路径的情况下,我似乎无法找出如何从文件中获取流。如果有人能指出我正确的结构,我将不胜感激。此外,如果您也可以为 XML 文件提供指导。我现在只阅读文本文件,但稍后我将使用 XML。谢谢!
2 回答
可移植类库允许您使用存在于您所针对的所有平台中的命名空间和类。
.Net 4.5(假设您的意思是完整的桌面-WinForms/WPF)、Windows 8 和 Windows Phone 8 的文件访问方式都非常不同,并且可以使用不同的文件。可以从哪里访问文件也有很大不同:嵌入的内容;嵌入式资源;隔离存储;共享文件夹;完整的文件系统。这些并非在您提到的所有平台上都可用。
简短的回答。你可能无法做你所追求的。
文件系统访问因平台而异,并且通常必须针对每个平台进行不同的操作。
您可以做的是为您的 PCL 可以使用的文件访问(打开、读取、保存等)定义一个接口,然后创建您根据需要传递给 PCL 的平台特定实例。
马特是正确的。
但是,有一些插件允许您从 PCL 访问文件。
我的图书馆,MvvmCross 提供了一个 - https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/Plugins/File
但是...对于您目前正在做的事情,我认为您最好的选择是@dsplaisted 的便携式文件存储库-可通过 Nuget 获得-http://nuget.org/packages/pclstorage-这是由 PCL 团队之一编写的来自 Microsoft - 它非常适合将路径转换为 PCL 中的流