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

Daiya Irie [E-MAIL ADDRESS DELETED]
2007年 11月 2日 (金) 10:58:07 JST


入江です。

回答ありがとうございます。
返信が遅りましたが、
問題の現象につきまして解決しました。
diconファイルの分割とインクルードの方法を
勘違いしていたため起きた現象でした。

以下に問題の現象が発生した理由について記述します。
Formを自動でdiconファイルに書き込むツールを独自に作成しています。
ツールを簡易的に作成するために、Example.diconにあたるdiconファイルを
「ここまでコピー」と記述されてある箇所+メインフォーム(App.dicon)と
その他のフォームの記述(Form.dicon:これを自動生成)の2つに分割しました。
分割した際に、App.diconにForm.diconをインクルードしていたため、
Form.diconに含まれるコンポーネントが
dispatcherコンポーネントを認識しせずに、Nothingが渡されていました。
Example.diconと同様にすべて同じdiconファイルに
dispatcherコンポーネントとFormコンポーネントを記述するようにしました。

diconファイルとコンポーネントの関係について
よく理解していませんでした。
お騒がせして申し訳ありません。

----- Original Message ----- 
From: "Hiroaki Fujii" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Friday, November 02, 2007 1:12 AM
Subject: [seasar-dotnet:627] Re: VB .netでのdispatcherについて


> 藤井です。
>
> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet 



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