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

标签 xamarin plugins mef

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

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

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

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

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

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

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

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

    最佳答案

    不确定这是否完全回答了您的问题。
    但是,如果您将 DLL 放在可公开发现的地方,例如/storage/emulated/0,那么类似 MEF 的架构可能会在 Android 上运行。或者,此类插件可以作为单独的应用程序分发,提供可从其他应用程序使用的服务、内容提供者和事件。
    但是,在 iOS 上,您将无法在 App Store 中发布这样的应用程序,因为 Apple 不允许您在那里使用动态链接库。您可以为不在 App Store 上的应用程序执行此操作,例如用于企业分发。
    虽然它可能不是最好的解决方案。您将始终能够通过 URL 在 iOS 上的应用程序之间导航。然而,这并不是最好的体验,因为这意味着每次你想进入一个“插件”应用程序来做某事时,你都会离开你的应用程序。

    关于Xamarin 和托管可扩展性框架 (MEF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216347/

    相关文章:

    c# - Xamarin listView 中的绑定(bind)颜色

    sqlite - db.RunInTransaction 是否总是需要一种方法来检查或处理回滚?

    c# - FileProvider Xamarin 不显示文件

    javascript - 尝试学习jQuery插件开发

    java - eclipse 插件中的外部 jar

    c# - 从容器中取出零件时的处理

    android - Visual Studio for Mac - 选择安卓模拟器

    objective-c - 是否有资源解释如何将照片导出到网站,例如将 iPhoto 导出到 Facebook?

    c# - WebApi 2.0 中的 MEF 未解析

    mvvm - 在 MVVM 应用程序中为 MEF 使用组合模型是否有好处?