在服务器端运行连续自定义应用程序逻辑入口点?

时间:2011-08-22 12:42:28

标签: c# silverlight plugins entry-point web

我正在创建某种插件系统。目前,我正在使用WinForms应用加载程序集,使用Assembly.LoadActivator.CreateInstance。 WinForms GUI应该只显示当前加载的程序集(插件)的名称。

PluginManager中有一个类,它实例化并保存所有IPlugin个实现者的列表。

但是,我现在希望能够从Silverlight应用程序访问插件列表(仅限其名称)。

我在Visual Studio中创建了一个Silverlight 4应用程序。

这增加了两个项目:

  • MyProject(SL 4项目)
  • MyProject.Web(包含运行.xap文件的.aspx启动页面)

我需要的是PluginManager及其实例化的插件不仅要在silverlight页面请求期间(通过aspx页面)加载,而且要始终加载,即使用户从未打开过Silverlight应用程序浏览器。我对.Web项目的切入点感到困惑。 (在控制台应用程序中,我会将代码放入Main方法,在Loaded事件处理程序的WinForms中,但我不知道在这个.Web项目中从哪里开始我的“服务”。

这是如何工作的?我应该在哪里实例化PluginManager?这个.Web项目仅在HTTP请求期间是短暂的,还是可以连续运行?

1 个答案:

答案 0 :(得分:0)

将Global.asax添加到MyProject.Web。并在Application_Start()方法中执行此操作。 构建应用程序时,此方法仅调用一次。

如果您需要在构建应用程序之前运行PluginManager,则应创建一个从安装程序运行的Windows服务。该服务将实例化PluginManager。