Xamarin:在运行时添加.dll文件以向应用程序添加功能

时间:2017-09-27 14:35:05

标签: c# xamarin xamarin.forms runtime assemblies

我想知道Xamarin应用程序(所有平台:Android,iOS,Windows Phone)是否可以在运行时检测和加载程序集。

这是我在WPF中已经做过的事情,我想在Xamarin应用程序中使用这些模块(可能有一些修改)。

我昨天在线寻找信息,今天我尝试实施解决方案,但没有成功。

Prism似乎是一种方法,但它只适用于WPF。

使这个困难的限制是我在编译时不知道有关程序集的任何信息。没有名字,没有版本,没有类。 我可以将名称和版本放在文件名中,也可以通过反射找到类。使用接口作为入口点(Prism使用它),我应该能够做到。

您对此挑战有何看法?

非常感谢!

1 个答案:

答案 0 :(得分:2)

  • iOS:否

Apple不允许在签名时捆绑到应用程序中的代码被执行,因此不允许CIL的动态Jit'ing。唯一的例外是通过他们的Nitro JavaScript引擎运行的Javascript代码。

  • Android:是

Google允许您能想到的任何事情,无论好坏; - )

  • Windows Phone:否

所有代码必须作为Microsoft Store的应用程序提取过程的一部分进行签名,因此您无法在以后动态加载程序集

注意:如果这是您的应用的要求,您应该查看混合移动应用,例如Cordova / Ionic,您可以在其中执行热推送推出新功能,错误修复等...除了自我托管这些热推,各种供应商支持托管这些,甚至Microsoft Azure有一个完整的版本发布系统。当然,您最有可能使用JavaScript(或某些经过编译的变体)进行编码。