S2Dao.NETでSuperAgileのフリ

たいそうなタイトルを付けてしまったがなんてことはない。
churaでは、PageクラスにDaoインターフェイスやServiceインターフェイスをpublic宣言しておくだけで
Pageクラスに処理が渡った時点でinjectionしてくれる機能がある。


これにより、DIを意識すること無くコーディングに専念できる。


さて、またまたべつの仕事でVB.NETの開発サポートをすることになった。
S2Dao.NETの設定にてこづりながらも、何とか設定はできた。

.NETのVBは言語的(語彙的?)にダメダメな部分があるので、
C#だと、
IEmployeeDao dao = (IEmployeeDao) container.GetComponent(typeof(IEmployeeDao));
となるところが、VB.NETだと
Dim dao as IEmployee = CType(container.GetConpoment(GetType(IEmployeeDao)), IEmployeeDao))
となる。(エラーかも)
と、キャスト時にCTypeで囲まにゃならんのがなんとも言えずダサい。


さて、これを解決する事は出来ないだろうか・・・
(一応書いておくと、S2Container.NEプロダクトでそれらをまとめたものを提供しているが、あまりにも通常の作りとかけ離れてしまうために、今回はS2Dao。NETの部分のみ導入することにした)
ああ、SuperAgile風にInjectionしてしまおう。


ということで、Injectionロジックを場当たり的に書いてみた。