2

ある種のプラグインシステムを作成しています。現在、アプリケーションを使用して、およびWinFormsを使用してアセンブリをロードしていました。WinForms GUI は、現在読み込まれているアセンブリ (プラグイン) の名前のみを表示するはずでした。Assembly.LoadActivator.CreateInstance

ライブラリには、すべての実装PluginManager者のリストをインスタンス化して保持するクラスがあります。IPlugin

ただし、アプリケーションからプラグインのリスト (名前のみ) にアクセスできるようにしたいと考えていSilverlightます。

Silverlight 4Visual Studio でアプリケーションを作成しました。

これにより、2 つのプロジェクトが追加されました。

  • MyProject(SL4プロジェクト)
  • MyProject.Web(.xap ファイルを実行する .aspx スタートアップ ページを含む)

私が必要としているのは、PluginManager(aspx ページを介した) Silverlight ページの要求中だけでなく、ユーザーがブラウザーで Silverlight アプリを開かなくても、インスタンス化されたプラグインが読み込まれることです。そして、.Web プロジェクトのエントリ ポイントとは何かについて混乱しています。.Web(コンソール アプリでは、Loaded イベント ハンドラーの WinForms の Main メソッドにコードを配置しますが、このプロジェクトで「サービス」を開始する場所がわかりません)。

これはどのように作動しますか?どこでインスタンス化する必要がありますPluginManagerか? その.Webプロジェクトは、HTTP 要求の間だけ存続しますか、それとも継続的に実行できますか?

4

1 に答える 1

0

Global.asax を MyProject.Web に追加します。Application_Start() メソッドでそれを行います。このメソッドは、アプリケーションのビルド時に 1 回だけ呼び出されます。

アプリケーションをビルドする前に PluginManager を実行する必要がある場合は、インストーラーから実行される Windows サービスを作成する必要があります。このサービスは PluginManager をインスタンス化します。

于 2011-08-22T12:59:11.233 に答える