gpt4 book ai didi

c# - ASP.Net Web 应用程序的插件

转载 作者:行者123 更新时间:2023-11-30 21:49:26 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 框架开发一个用 C# 编写的网络应用程序。

我想让我的客户为网络应用程序编写他们自己的插件。每个客户端都有自己的数据库。

我有一些想法如何做到这一点:

  1. 我将提供一个界面,允许用户上传他的程序集 dll。这会将 dll 存储在客户端的特定插件文件夹中。
  2. 我将为类和方法注释提供一些 C# 接口(interface)和属性。
  3. 服务器的业务逻辑将检查每个插件并搜索具有这些属性或接口(interface)实现的类和方法,以覆盖或改变它在某些点上的默认行为。
  4. 为了提高性能,我将实现某种形式的缓存,每次上传新插件时缓存都会失效。

现在我的问题:

如何允许用户编写插件?我的意思是如何为此提供某种 SDK?用户主要需要 C# 接口(interface)和注释,但开发人员还希望在将插件上传到生产服务器之前对其进行测试。我可以将我的 web 应用程序打包在某种 DLL 中,开发人员可以加载这些 DLL 以进行测试但不阅读源代码吗?或者还有其他方法吗?

感谢您提供这方面的任何信息!

最佳答案

您应该看一下 MEF(托管可扩展性框架),这是 Microsoft 创建的用于启用应用程序插件的框架。

简而言之:您创建一个带有契约(接口(interface))的库。您将该库提供给您的客户,并告诉他们基于这些接口(interface)编写插件。

然后您告诉您的应用程序,当它需要 IPlugin 时,它需要在插件文件夹中搜索 IPlugin 的实现并使用它。

一些研究网址:

关于c# - ASP.Net Web 应用程序的插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com