Xamarin 和托管可扩展性框架 (MEF)

Jul*_*aro 5 plugins mef xamarin

我正在考虑一个新的移动/平板电脑应用程序。

我想让用户开发自己的插件。

想象一下在 Android 平板电脑上运行的收银台应用程序。用户在连接到信用卡读卡器时可以使用许多替代方法(SquareSum'Up、...)。

如果我的应用程序是旧的 Win32,我只会发布一个 API,然后让SquareSum'Up开发人员创建一个 DLL。然后,这个 DLL 将被放置在计算机上的某个地方。在应用程序启动时,我只需要查找那些 DLL 并动态加载它们。

事实上,真正的问题是:是否可以创建基于插件的应用程序?我在这里考虑托管可扩展性框架。许多问题浮现在脑海:

  • 如何部署这些插件?
  • 这是否适用于所有平台(iOS、Android、UWP)?
  • ...

我找不到任何关于此的文档。

非常感谢您的想法和指示。

Che*_*ron 2

不确定这是否完全回答了您的问题。

然而,如果您将 DLL 放在可公开发现的位置(例如 /storage/emulated/0),类似 MEF 的架构可能可以在 Android 上运行。或者,此类插件可以作为单独的应用程序分发,提供可从其他应用程序使用的服务、内容提供商和活动。

但是,在 iOS 上,您将无法在 App Store 中发布此类应用程序,因为 Apple 不允许您在那里使用动态链接库。您也许可以对不在 App Store 上的应用程序执行此操作,例如企业发行版。

虽然这可能不是最好的解决方案。您始终可以通过 URL 在 iOS 上的应用程序之间导航。然而,这并不是最好的体验,因为这意味着每次您想要进入“插件”应用程序执行某些操作时,您都会离开您的应用程序。