[seasar-dotnet:627] Re: VB .netでのdispatcherについて

Hiroaki Fujii [E-MAIL ADDRESS DELETED]
2007年 11月 2日 (金) 01:12:58 JST


藤井です。

VB.NETに詳しくないので、ちょっと、作って調べてみました。

VB.NETでは通常、WindowsFormがGlobalなオブジェクトとして
生成されてしまうため、S2Containerに登録されたWindowsFormの
オブジェクトではないと思います。VB6の頃と同じですね。
そうなると、当然WindowsFormにS2Containerの管理オブジェクトが
インジェクションされないのでNothingだと思います。

対策ですが、一つはプロジェクトのプロパティから「アプリケーション
フレームワークを有効にする」のチェックを外して、続いて「スタート
アップフォーム」をSub Mainを選びます。
そして、適当なクラスを作り、そこで
Shared Sub Main()
End Sub
を作り、このメソッドの中で、C#のサンプルのProgramクラスのMain
メソッドの同等のことを記述してください。

もう一つは、S2Container.NETを1.3.0以上にしてQuillを使う方法です。
こちらは上記の設定を変更しなくても使えますが、バージョンが上がって
しまうので、色々な面で影響を与えるかもしれませんし、Quillを覚える
必要があります。
サンプルはすでに公開しているので参考にしてみてください。

以上、ご検討のほど、お願いいたします。

Daiya Irie さんは書きました:
> 入江です。こんにちは。
> 
> C#で作成されたwindowsformsample-1.2.9のサンプルを元に、
> VB .net(VisualStudio2005)で開発を行っています。
> 
> サンプルでは各Formのコンストラクタでdispatcherを
> パラメータに設定していますが、
> VBで同様のコードを記述した場合に、
> パラーメータdispatcherに渡される値がNothingとなってしまいます。
> なお、メインから呼ばれる初期起動フォーム(AppContextのMainForm)には
> dispatcherが格納されますが、
> そこから遷移した画面についてNothingになる状況です。
> 
> diconファイル等をチェックしましたが、
> C#のサンプルとVB.netで作成したコードに
> 違いはありませんでした。
> (diconファイルはサンプルのExample.diconの
> コメントの”ここまではCopy&Pasteで使う”の箇所を
> コピーして使用しています。)
> 
> チェックするべき点などありましたら、
> お手数ですがご教示お願いいたします。
> 
> 以上、よろしくお願いいたします。
> 
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 



seasar-dotnet メーリングリストの案内