[Seasar-s2dotnet 60] Re: S2.NET-1.0.0-beta7リリース

Kazuya Sugimoto sugimoto
2005年 8月 6日 (土) 06:29:48 JST


杉本です。

細川さん、佐藤さん、ご指摘ありがとうございます。

昨日はネットから離れており、反応が遅くなりました。m(_ _)m
調査してみます。

Kazunori Satoh wrote:

> こんばんわ。佐藤です。
>
>
>  
>
>>S2.NET-1.0.0-beta7を試してみたのですが、App.configでのアセンブリ
>>登録で不明点がありましたのでメールしました。
>>
>>例えば、Hoge.exeのApp.configで以下のようにアセンブリを指定したと
>>します。
>><configSections>
>>    <section name="s2dotnet" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
>></configSections>
>><s2dotnet>
>>    <add key="configPath" value="HogeApp/App.xml" />
>>    <add key="assembly" value="HogeAppLogic" />
>>    <add key="assembly" value="CommonLogic" />
>></s2dotnet>
>>
>>プログラムを実行するとdiconの<component>にてHogeAppLogic内の
>>クラスを指定している部分でエラーになります。
>>
>>S2ContainerFactory.Create(string path)の中段部分
>>string[] assemblys = config.GetValues(ContainerConstants.CONFIG_ASSEMBLY_KEY);
>>では最後の「CommonLogic」のみが取得出来、「HogeAppLogic」は取得出来ていないよ
>>うです。(最後の1つのみが取得出来る)
>>
>>    
>>
>
> 私も試してみましたが同様の現象が発生しますね。
>
> 原因は細川さんも書いている通り、コード中の
>
> ConfigurationSettings.GetConfig(ContainerConstants.S2DOTNET_CONFIG);
>
> の戻り値であるNameValueCollectionに"assembly"というkeyで格納されている
> 文字配列の要素がなぜか最後に指定したvalueだけしかセットされないのが
> 原因です。
>
> NameValueCollectionは一つのキーに複数の文字列を格納できるコレクションで
> ありそれ単体では複数の文字列を格納できるはずですが不思議といろいろな所
> で散見される同ハンドラのクラスでは同一のキーを指定している例を見たこと
> がありません。
>
> となるとこれはセクションハンドラである
> System.Configuration.NameValueSectionHandlerの問題か制限ではないで
> しょうか。
>
> 同クラスに問題か制限があるのであればIConfigurationSectionHandlerを
> 実装したカスタムハンドラクラスを使うほうが良いかもしれませんね。
>
>************************************************************************
>* Kazunori Satoh <kazz2 @ joy.hi-ho.ne.jp_NOSPAM>
>* http://d.hatena.ne.jp/Kazzz/
>*
>**
>
>
>_______________________________________________
>Seasar-s2dotnet mailing list
>Seasar-s2dotnet @ lists.sourceforge.jp
>http://lists.sourceforge.jp/mailman/listinfo/seasar-s2dotnet
>  
>



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