-
Type: New Feature
-
Resolution: Fixed
-
Priority: Major
-
None
-
Affects Version/s: None
-
Component/s: S2Container.NET
-
None
-
Environment:.NETFramework2.0
前提1:AbstractSelectableDataSourceProxy継承クラスを使用する
前提2:S2Daoと組み合わせて使う場合はS2DaoInterceptorよりも前に適用されるように設定する
CONTAINERNET-79の派生として。
Daoごとにデータソースを指定したい場合など、
複数データソース使用時に静的にデータソースを指定したい場合を
想定しています。
<変更予定>
DataSourceSelectInterceptorを追加(AbstractInterceptorを継承
・プロパティ1
適用するクラス、メソッド(MemberInfo)をキー、使いたいデータソース名(string)を値とする
IDictionary
・プロパティ2
AbstractSelectableDataSourceproxy継承クラス
(コンストラクタで設定した方がいい気もしますが、Quillでの使用も考えて
プロパティを使う形にします)
○Interceptor適用時の動き ----------------------------------------------------------------------------
1.invocationから呼び出し元のクラスを取得。
1-a.プロパティ1にそのクラスをキーとする要素があれば対応する値を
プロパティ2.SetDataSourceNameの引数に渡す。
1-b.なければinvocationからメソッド情報を取得。プロパティ1に
メソッド情報をもつ要素があれば対応する値をプロパティ2.SetDataSourceNameの
引数に渡す。
2.invocation.Proceed()を呼び出す。
S2Container、S2Daoでの使い方 --------------------------------------------------------------------
プロパティ1は明示的にdiconで指定する。
後は他のInterceptorと同じ。
Quillでの使い方 -------------------------------------------------------------------------------------------
S2Dao属性が指定されている場合、
IDaoSettingのDataSourceNameがnullまたは空文字列以外であれば
自動的に適用。