[seasar-dotnet:1237] Re: Quillでdxoのインジェクションはできないでしょうか?

koyak [E-MAIL ADDRESS DELETED]
2008年 12月 22日 (月) 15:53:15 JST


黒柳さん

小谷です。

>QuillではDxoのインジェクションはできないのでしょうか?

私自身は業務でこのパターンを使ったことはないのですが
可能なはずです。

>[Implementation]
>public interface IOrderItemDxo
>{
> List<ToDto> ConvertFromDtoToDto(IList<FromDto> fromArray);
>}

QuillでDxoInterceptorを使う場合は
「Aspect属性」を使う必要があります。
詳しい使い方はこちら↓をご覧ください。

「Quillで簡単DI+AOP」AOPを利用する
http://s2container.net.seasar.org/ja/quill.html#aop

Aspectが指定されていない場合は
それを織り込んだ動的クラスを作ることができないため、
インターフェースをnewしようとしているのと
同じことになってしまいます。

恐らくS2Containerをお使いのときは
diconファイルにDxoInterceptorの登録とそれを適用する設定を
書いていたのではないでしょうか。
Quillの場合はAspect属性がこれにあたります。

2008/12/22 15:00 黒柳 仁 <[E-MAIL ADDRESS DELETED]>:
> いつもお世話になります、黒柳と申します
>
> 最近Quillを使用しはじめ、以前作成したS2Containerのプログラムを
> 置き換えようとしていますが、S2.Dxoを使用するときのインジェクション
> が失敗してしまいます。
>
> [Implementation]
> public interface IOrderItemDxo
> {
>  List<ToDto> ConvertFromDtoToDto(IList<FromDto> fromArray);
> }
> とし簡単なテストケースで
> protected IOrderItemDxo _dxo;
> [Test]
> public void Dxoがインジェクションできる()
> {
>   QuillInjector injector = QuillInjector.GetInstance();
>   Assert.IsNull(_dxo);
>   injector.Inject(this);
>   Assert.IsNotNull(_dxo);
> }
> としていますが、Inject()後のAssertで
> [EQLL0008]実装クラスが指定されていないインターフェースにはAspect属性を指
> 定する必要があります
> というエラーになってしまいます。
>
> QuillではDxoのインジェクションはできないのでしょうか?
> ---------------------------------------
> 株式会社ミネルバ / MINERVA Co.Ltd
> Pursuit of Software With Thought
> ITソリューション部/ IT Solution Dept.
> 黒柳 仁 / Hitoshi Kuroyanagi
>
> TEL/XXX-XXX-XXXX , FAX/XXX-XXX-XXXX
> E-Mail / [E-MAIL ADDRESS DELETED]
> ---------------------------------------
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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