[seasar-dotnet:1890] Re: URLを省略した場合WebフォームにDIされない

kubo [E-MAIL ADDRESS DELETED]
2010年 12月 10日 (金) 18:30:31 JST


久保(jflute)です。

こんばんは、吉田さん

自分はその機能使ったことないのですが、
取り急ぎ、コメントできることだけ。

> <component name="/hoge/Default.aspx" instance="outer" />

を
<component name="/hoge/" instance="outer" />
<component name="/hoge/Default.aspx" instance="outer" />
というように二つ定義してみたらどうなるでしょうか?

S2HttpModule の context_AcquireRequestState() が
その機能の部分のコードだとすると、
HttpApplication.Request.Path に合致するコンポーネントが
定義されていれば InjectDependency() と呼び出しているので、
試してみる価値はあるのかなと。

逆に、もしそれで動くようであれば、
S2HttpModuleをアプリで独自に拡張して、
(private になってるので、独自の HttpModuleを作って)
/hoge/ の場合に /Default.aspx として処理するなどの
回避ができるようになるかもしれません。

2010/12/10 Takafumi Yoshida <[E-MAIL ADDRESS DELETED]>:
>  いつもお世話になります。吉田(zephiransas)です。
>
> S2Containet.NET 1.3.18
>
> 上記の環境で、ASP.NETのWebフォームに対してDIを行おうとしています。
>
> http://s2container.net.seasar.org/ja/asp.html#WebForm
> にあるように設定をおこないましたが、例えば仮想パスがhogeとかであった場合
>
> <component name="/hoge/Default.aspx" instance="outer" />
>
> と設定を行い、ブラウザから
>  http://[開発サーバ]/hoge/
> でアクセスした場合はDefault.aspxにDIされず
>  http://[開発サーバ]/hoge/Default.aspx
> でアクセスした場合は、正しくDIされます。
>
> #ASP.NETのHttpModuleの制限っぽいですが・・・
> http://[開発サーバ]/hoge/ でアクセスした場合でも正しくDIされる方法はありませんでしょうか?
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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