汎用プラグインフレームワーク作ってました。

..NETではアセンブリに対してリフレクションかけて、特定のクラスの派生クラスを読み込むという手法でプラグインシステムを実装することができます*1

ただ、それを最初から実装するのは割と面倒なので、基底クラスさえ作れば後は簡単に作れるようなフレームワークを作ってみました。

使うときは PluginBase から実装先のソフトのプラグインの基底となる派生クラスを定義します。あとは PluginManager にその派生クラスの System.Type を渡してやって、プラグインの読込先のフォルダを指定してやるだけで、あとはプラグインとして定義されている型のインスタンスが一気に読み込まれます。

プラグインは Load メソッドで初期化、Unload メソッドで開放が行われるように実装します。

ちなみに ONEProxy に適用する予定。

*1:いまどこナビのプラグインがまさにそう