[seasar-dotnet:2197] Re: 【Quill】サーバ起動時(WCF)にS2Containerを初期化する方法について

佐藤 浩 [E-MAIL ADDRESS DELETED]
2012年 8月 26日 (日) 01:15:00 JST


お世話になっております。

佐藤です。

小谷さん、前回に引き続き、基本的に質問にご回答いただき誠にありがとう
ございました。

ご提示いただいた、メーリングリストを参考に、Webサービスの実装クラスの
コンストラクターに下記のコードを記述し、DI、AOPの動作を確認させて頂き
ました。

public HogeWebService()
{
QuillInjector injector = QuillInjector.GetInstance();
injector.Inject(this);
}

まだ、ロールバック、複雑なDB問い合わせ等の調査が終わっている訳では
ないのですが、今回の質問に関しては、十分な確認が取れましたので、クロ
ーズさせて頂きたいと思います。

以上、よろしくお願いいたします。



(2012/08/25 21:46), kotani.k wrote:
> 佐藤さん
>
> 小谷です。
>
> ご提供いただいた設定ファイル、ソースコードを拝見する限りでは
> 設定ファイルではQuillの初期化を、
> ソースコードではS2Containerの初期化処理呼び出しを行っているように見えます。
>
> Seasar.NETにはQuillとS2Containerの2種類のDIコンテナがあり、
> バージョン1.3.18まではQuill推奨、1.4.0からはQuillのみ対応となっております。
>
> Quillの初期化方法は
> http://s2container.net.seasar.org/ja/quill.html#di_quill
> をご覧ください。
>
> また、WCFによるWebサービスにおける初期可処理呼び出し箇所としましては
> 当メーリングリストの下記のやり取りが参考になるかと思います。
> http://ml.seasar.org/archives/seasar-dotnet/2011-December/002113.html
>
> 以上です。
>
> 2012年8月25日 9:57 佐藤 浩 <shiroshi92 @ gmail.com>:
>> お世話になっております。
>> 佐藤と申します。
>>
>> C# .Net.4.0
>> S2Container.NET 1.4.0 RC3
>> SqlServer2008 R2
>> Visual Studio 2010
>>
>> サーバ側では、WCFによるWebサービスのみを提供したいと思
>> っております。
>> (ASP.NET空のWebアプリケーションのソリューションにWCFサ
>> ービス追加。)
>>
>> http://s2container.net.seasar.org/ja/asp.html
>>
>> を参考に、色々設定を試させていただいているのですが、AOP
>> や、DIが機能していません。
>> Web.configに設定を記述し、Global.asaxで、S2Containerの
>> 初期化を行えば良いと考えたのですが、違うのでしょうか?
>> (コーディングしたクラスは、WindowsアプリでQuillの動作
>> 確認が取れているものを利用)
>>
>>
>> 以下に、私が行った設定を示します。
>>
>> 【Web.config】
>>
>> <configuration>
>>
>> <!-- 追加 開始 -->
>>   <configSections>
>>     <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
>>     <section name="quill" type="Seasar.Quill.Xml.QuillSectionHandler, Seasar.Quill" />
>>   </configSections>
>>
>>   <log4net>
>>     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
>>       <layout type="log4net.Layout.PatternLayout">
>>         <conversionPattern value="%-5p %d [%t] %m%n" />
>>       </layout>
>>     </appender>
>>     <root>
>>       <level value="DEBUG" />
>>       <appender-ref ref="TraceAppender" />
>>     </root>
>>   </log4net>
>>   <quill>
>>     <dataSources>
>>       <dataSource name="ds">
>>         <provider>SqlServer</provider>
>>         <connectionString>"Server={サーバ名}\\SQLEXPRESS;Database=s2dotnetdemo;Integrated Security=true"</connectionString>
>>         <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>>       </dataSource>
>>       <assemblys>
>>         <assembly>Seasar.Dao</assembly>
>>         <assembly>Seasar.Windows</assembly>
>>         <assembly>Seasar.Dxo</assembly>
>>       </assemblys>
>>     </dataSources>
>>   </quill>
>> <!-- 追加 終了 -->
>>
>>    <system.web>
>> ---中略---
>>
>> 【Global.asax ※】
>> protected void Application_Start(Object sender, EventArgs e)
>> {
>>     SingletonS2ContainerFactory.Init();
>> }
>>
>> protected void Application_End(Object sender, EventArgs e)
>> {
>>     SingletonS2ContainerFactory.Destroy();
>> }
>>
>> ※Global.asaxをソリューションに追加し、空のapp.diconを用意。
>>
>> .NET開発の経験が少ないため、的外れな事を言っていたら、申し訳
>> ございません。
>>
>> 以上、よろしくお願いいたします 。
>>
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet



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