我正在创建某种插件系统。目前我正在使用WinForms
应用程序加载程序集,使用Assembly.Load
和Activator.CreateInstance
. WinForms GUI 应该只显示当前加载的程序集(插件)的名称。
库中有一个类PluginManager
,它实例化并保存所有IPlugin
实现者的列表。
但是,我现在希望能够从Silverlight
应用程序访问插件列表(仅它们的名称)。
我Silverlight 4
在 Visual Studio 中创建了一个应用程序。
这增加了两个项目:
MyProject
(SL 4 项目)MyProject.Web
(包含运行 .xap 文件的 .aspx 启动页面)
我需要的是PluginManager
不仅在silverlight页面请求(通过aspx页面)期间加载及其实例化插件,而且始终加载,即使用户从未在浏览器中打开silverlight应用程序。我对 .Web 项目的入口点是什么感到困惑。(在控制台应用程序中,我会将代码放入 Main 方法中,在 WinForms 中的 Loaded 事件处理程序中,但我不知道在这个.Web
项目中从哪里开始我的“服务”)。
这是如何运作的?我应该在哪里实例化我的PluginManager
?该.Web
项目仅在 HTTP 请求期间是短暂的,还是可以连续运行?