[seasar-dotnet:1624] Re: Transaction 属性をつけたクラスにはDIされない?

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 23日 (火) 10:40:33 JST


久保(jflute)です。

川上さん、こんにちは
(ikutirinさん、フォローありがとうございます)

これはドキュメントがもうちょい改善されるべきですね。

http://s2container.net.seasar.org/ja/quill.html#di_quill

取り急ぎ、DI対象となるアクセス修飾子についての記述を、
DIの説明の目立つところに書いておきました。
基本的には protected と、しておくのが一番無難です。
(特に大人数に横展開するような場合は)

2010/3/19 Tatsuharu Kawakami <[E-MAIL ADDRESS DELETED]>:
> 川上です。
>
> 自己解決しました。
>
> Quillではprivateメソッドを含め、すべてのフィールドに対してDI対象かどうかを問い合わせるようなのですが、
> Aspectが適用されたProxyクラスは、もとのオブジェクトのprivateフィールドをType.GetFieldsで取得できないためDIできません。
>
> というところを突き止めたのですが、
> ここに書いてありましたorz..
> http://s2container.net.seasar.org/ja/quill.html#di_notice
>
> 大変失礼しました。
>
>
> 2010年3月19日17:14 Tatsuharu Kawakami <[E-MAIL ADDRESS DELETED]>:
>> 川上です。
>>
>> ikutirinさん
>>
>> 念のため逆にしてみましたし、メソッドにTransactionをつけてもダメでした。
>> リビルドも行いましたがダメでした。
>>
>> Aspectタグで適当なInterceptorをつけてみましたが、やはりダメでした。。。
>>
>>
>> 2010年3月19日16:33 ikutirin <[E-MAIL ADDRESS DELETED]>:
>>> ikutirinです。
>>>
>>> 全く未検証で申し訳ないのですが、
>>> 属性を逆にしてみても同じですか。
>>> #以前同じような現象に出くわしたような気がして。。。
>>>
>>>  [Transaction]
>>>  [Implementation]
>>>  public class HogeAction
>>>
>>> 関係ないでしょうか。。。
>>>
>>> #Transaction属性はクラスでも有効でしたでしょうか。。。
>>> #私はメソッド派です。
>>>
>>>
>>>
>>>
>>> Tatsuharu Kawakami <[E-MAIL ADDRESS DELETED]> wrote:
>>>
>>>> 川上です。
>>>>
>>>> Quillを検証している最中で疑問に思うことがあるので確認させてください。
>>>>
>>>> 下記のクラスで、Transaction属性をつけなかった場合は、logicフィールドに期待するオブジェクトが設定されるのですが、
>>>> Transaction属性をつけた場合、logicフィールドがnullとなってしまいました。
>>>> ソースコードを眺めた感じでは、Aspectを適用するクラスにはインジェクションがされないようなのですが、これは仕様でしょうか?
>>>>
>>>>
>>>>     [Implementation]
>>>>     [Transaction]
>>>>     public class HogeAction
>>>>     {
>>>>         private HogeLogic logic = null;
>>>>
>>>>         public virtual void BatchInsert()
>>>>         {
>>>>             Console.WriteLine(logic == null ? "ぬるっ" : logic.ToString());
>>>>         }
>>>>     }
>>>>
>>>>
>>>> 使用している環境
>>>> s2container.net-1.3.17
>>>> VisualStudio2008
>>>> .NET Framework3.5
>>>>
>>>> よろしくお願いします。
>>>>
>>>> --
>>>> --------------------------------------
>>>> Tatsuharu Kawakami
>>>> [E-MAIL ADDRESS DELETED]
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>
>>
>>
>> --
>> --------------------------------------
>> Tatsuharu Kawakami
>> [E-MAIL ADDRESS DELETED]
>>
>
>
>
> --
> --------------------------------------
> Tatsuharu Kawakami
> [E-MAIL ADDRESS DELETED]
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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