我创建了一个便携式类库用于我的Monodroid项目。
但问题是我需要系统IO库,但不幸的是我无法添加它。
我什至尝试通过“添加引用”选项来添加它,但这是徒劳的。
为什么会发生这样的事?
我该怎么做?
你不能使用System.IO
因为它不是一个可移植的类库。System.IO
进行特定于其运行的操作系统(Windows)的调用,而可移植类库则被认为是跨平台的。
可以找到您正在寻找的解决方案here http://blogs.msdn.com/b/dsplaisted/archive/2012/08/27/how-to-make-portable-class-libraries-work-for-you.aspx:
当你尝试编写一个可移植库但是
您需要一些不受支持的功能?您不能调用
直接 API,你不能引用这样做的库,因为
可移植库不能引用非可移植库。这
解决方案是在您的可移植库中创建一个抽象
提供您需要的功能并实现该抽象
对于您的便携式库目标的每个平台。例如,如果您
需要保存和加载文本文件,您可能会使用类似的界面
这:
public interface IFileStorage
{
Task SaveFileAsync(string filename, string contents);
Task<String> LoadFileAsync(string filename);
}
最好只包含您需要的功能
抽象。在这个例子中,接口没有抽象通用的
文件系统概念,例如流、文件夹或枚举文件。
这使得抽象更加可移植并且更容易实现。这
方法返回任务,以便 Windows 应用商店应用程序的实现
可以调用异步的 WinRT 文件 IO API。
创建抽象允许可移植库调用
不可移植的代码,并且这种模式几乎在任何时候都适用
需要从可移植库访问非可移植功能。的
当然,您需要某种方式让可移植代码获得对
抽象的实现。你如何做到这一点取决于
无论您是在编写跨平台应用程序还是通用应用程序
可重用的库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)