【问题标题】:How to use Plugin Architecture in ASP.NET?如何在 ASP.NET 中使用插件架构?
【发布时间】:2011-03-09 07:13:16
【问题描述】:

我非常喜欢 WinForms 的插件架构,我想在 Asp.net 中使用插件架构。

我在 asp.net 中搜索了插件架构并找到了 asp.net MVC 示例,但我想使用经典的 asp.net 项目而不是 MVC。

有没有人知道任何使用经典 asp.net 而不是 MVC 的模式资源?

【问题讨论】:

  • 本身没有标准的插件架构。 MEF(正如 Jan Remunda 指出的那样)是一种选择,但在某些情况下它可能是矫枉过正。您希望能够做什么。
  • 特别是考虑到 WINFORMS 中没有插件架构。你在说什么?
  • 我想在没有 asp.net mvc 1-2-3 的情况下在 ASP.NET 中使用插件架构

标签: c# .net asp.net visual-studio


【解决方案1】:

你可以自己滚动。

插件架构需要一些不那么复杂的部分:

  • 一种识别插件 dll 所在位置的方法
  • 所有插件都必须遵守的接口或基类定义。这是最重要的一个。它决定了您的插件可以公开哪些功能以及它可以与您的应用集成的深度
  • 插件被加载和执行的地方(及时)。 (即,插件是否针对每个网页请求执行?还是针对匹配某个名称的请求?或者页面是否手动调用插件?)

一旦你弄清楚了,实例化一个插件的实例就很简单了。无论您是在 Web 应用程序中还是在客户端上运行,它的工作原理都是一样的:

System.Reflection.Assembly a = System.Reflection.Assembly.LoadFrom(plugin_path);
t = a.GetType("IPlugin");
IPlugin plugin = (IPlugin)Activator.CreateInstance(t);

然后,您可以使用plugin.DoSomething() 从插件中实际调用功能。 (无论是渲染部分html还是保存到数据库或其他)

【讨论】:

  • 能否在asp.net中提供一些有用的示例链接
  • 既然有这么多功能完善的库,为什么还要重新发明轮子并编写这样的样板代码?
【解决方案2】:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2010-09-25
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
相关资源
最近更新 更多