[seasar-dotnet:1316] Quill:フォームへのインジェクションがうまく行かない
小林貴生
[E-MAIL ADDRESS DELETED]
2009年 5月 29日 (金) 15:31:10 JST
いつもお世話になっております。
以前も質問させて頂いた小林と申します。
今回も質問がありまして、メールさせて頂きました。
Quill(Seasar.NET) 1.3.15
VisualStudio2008
です。
今困っている現象は、フォームへのインジェクションが
1回目は期待通りに行くけれども、2回目以降行かないと言うことです。
以下のようなソースを書いています。
インジェクションされるクラス
using Seasar.Quill.Attrs;
namespace Sample.Hoge.Fuga
{
[Implementation]
public class Hello
{
public string GetHello()
{
return "Hello";
}
}
}
呼び出すフォーム
using System;
using System.Windows.Forms;
namespace Sample.Hoge.Fuga.Forms
{
public partial class ClientForm : Form
{
public ClientForm()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
PopupForm frm = new PopupForm();
frm.Show();
}
}
}
呼び出されるフォーム
using System;
using System.Windows.Forms;
namespace Sample.Hoge.Fuga.Forms
{
public partial class PopupForm : Form
{
public PopupForm()
{
InitializeComponent();
}
protected Hello _hello;
private void PopupForm_Load(object sender, EventArgs e)
{
Seasar.Quill.QuillInjector.GetInstance().Inject(this);
MessageBox.Show(_hello.GetHello());
}
}
}
上記ソースを実行した場合、
1度目は _hello に値が設定されますが、
2度目以降、null のままでセットされません。
呼び出すフォームで、
Seasar.Quill.QuillInjector.GetInstance().Inject(frm);
もやってみましたが、ダメでした。
フォーム自体をQuill管理することも考えましたが、
同じフォームで違う値を出したいこともあり、new したいな。と考えています。
どなたか、上記現象の回避方法をお持ちでしたら、
教えて頂けないでしょうか。
以上、よろしくお願いいたします。
小林貴生
seasar-dotnet メーリングリストの案内