高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

.NETでプラグイン

 今日はプラグインを実装してみました。
 今までの一般的な言語だと、指定されたいくつかの関数をエクスポートしたDLLを作成する――という形になると思います(わたし自身はプラグイン対応ソフトを作ったことはないので、人のソフトのプラグインSDKを読んだときの感想ですが)が、
.NETの場合は面白いもので、あらかじめプラグインベースクラスとしてクラスを作成し、
それを継承して新たにクラスを作るだけなんですね。
 そして、呼び出す側も、System.Reflection.Assemblyクラスを用いてDLL(アセンブリ)を読み込み、そこからAssemblyクラスのGetTypesメソッドを使って、目的のクラス(ベースクラスが、プラグインベースのクラス)を探し、System.Activator.CreateInstanceメソッドを使って生成 と、それだけで使えます。
あとはプラグインベースクラスにキャストして、自分の作ったクラスと同じように、メソッドを呼び出したりして使うだけ。簡単です。
 かなり、プラグインが作りやすい環境になりました。.NETはこの辺のことを、意識してるのかもしれませんね。

 ちなみに、今回もやはり参考になるページがありました。
.NETでいきまっしょい! ご自身もプラグインを使ったソフトを作られているので、わかりやすかったです。
本で読んだ知識だけみたいで、あんまり自分の力だけでできたことって少ないかもしれませんが、それでもなんだか、うれしいですね。
 まあ、いくらなんといっても、.NETはまだまだ勉強中なわけで、自分の力だけでどうこうするのは、まだちょっと早いかな。