[seasar-dotnet:1626] Re: 基底FormクラスにDI対象フィールド+AOP対象でエラー

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 23日 (火) 23:46:37 JST


久保(jflute)です。

DynamicProxyとVisualStudioのデザイナとで
相性悪いところがあるのでしょうかね。。。

スーパークラスのFormにAspect属性付きの
コンポーネントのフィールド定義すると、
実行は問題ないけど、VisualStudioのデザイナで開けない

まとめるとこんな感じでしょうか。

自分はちょっとForm系は全くの無知なので、
詳しくは誰かForm得意な人の降臨を待ちたいところですが、
ひとまず、発生条件をもっと明確にするために、

A. IXXXXServiceをインターフェースじゃなくてクラスで
B. Aspect属性じゃなくてTransaction属性で
C. "A" と "B" 両方で

で、同じ現象が発生するかどうか試して頂けますでしょうか?
(もし、全てで発生するなら、要はAOP掛かったコンポーネント
がダメってことになりますね)

また、念のため、VisualStudioのバージョン(.NET自体のバージョンも)
やエディションをお願いします。


2010/3/23 ikutirin <[E-MAIL ADDRESS DELETED]>:
> ikutirinです。
> 解決へのヒント、回答をよろしくお願いします。
>
> Seasar.Quil.dll:1.3.17.0、
> DBFlute:0.8.9.12
> で開発しています。
>
>
> S2Formを継承したFormを作成しました。(AAAFormとします)
> AAAFormを継承してFormを作成しました。(BBBFormとします)
>
> AAAForm内で、
> protected IXXXXService xxxService;
> とDI対象のフィールドを用意すると、
> BBBFormをVisualStudioのデザイナで表示できなくなります。
> 以下エラーがでます。
> ---
> メソッドが見つかりません:
> 'Void Seasar.Framework.Aop.Proxy.DynamicAopProxy..ctor(System.Type,
> Seasar.Framework.Aop.IAspect[], System.Collections.Hashtable)'
> ---
>
> IXXXXServiceにはAspect属性を設定しており、その属性を外すと
> エラーがでず、正常にデザイナで開くことができます。
>
> ためしに、
> BBBForm内に、
> protected IXXXXService xxxService;
> を書いてみましたが、エラーは発生しません。(当然ですね。。。)
> #AAAFormは常に、問題なくデザイナで開くことができます。
>
> S2Form→AAAForm→BBBFormという構成で、
> AAAForm内にAspect属性を指定したインターフェースのフィールドを作成したいのですが、
> どのようにすればよいでしょうか。
> #実行は出来るのですが、VisualStudioのデザイナで開けなくなります。
>
> よろしくお願いします。
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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