【问题标题】:Any way to use .NET library in PCL project?有什么方法可以在 PCL 项目中使用 .NET 库?
【发布时间】:2017-11-01 10:01:14
【问题描述】:
我有与 .NET 库(BL 层)完美配合的 Android 应用程序(UI 层)。 UI层实现BL接口。
现在我想用 PCL 创建 XamarinForms 应用程序。但是那里不可能引用我的其他解决方案的项目:
Portable Library 项目只能引用其他 Portable Library 项目和程序集。
对此有什么解决方法?有没有办法使用 .NET 库开发 XamarinForms 跨平台应用程序?
【问题讨论】:
标签:
.net
xamarin.android
xamarin.forms
portable-class-library
【解决方案1】:
不,您不能仅使用 .Net 库构建 Xamarin 跨平台应用程序。 PCL 与特定的“配置文件”相关联。此配置文件由 Microsoft 提供,它定义了可以在每个目标框架上使用的特定 API,而无需重新编译。
以下是 VS2015 更新 3 的一些现有配置文件的列表:link。
需要注意的重要一点是,您选择的平台越多,您可以使用的 API 就越少! IE。在 PCL 中,您无法从字符串文件名直接创建 StreamReader。所以:
var reader = new System.IO.StreamReader(filename);
不能在 PCL 中工作!对于这种情况,您将需要以任何方式实现一些抽象。
您可以尝试将现有的 .Net 程序集转换为 PCL(或.Net Standard library)。这是您能够从 PCL 中引用库的唯一方法。