[seasar-dotnet:1662] Re: S2Container.NET、S2Dao.NET(Windows7)について3

kubo [E-MAIL ADDRESS DELETED]
2010年 4月 27日 (火) 22:19:08 JST


久保(jflute)です。

> つまりは、Seasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに
> 差し替えても機能的に問題がないものでしょうか。
RealProxyとDynamicProxyの違いを比較して、
そちらのプロジェクトでの利用方法と照らし合わせて、
違いによる影響を(一項目ずつ)検証するのが良いと思います。

例えば、
代表的なところでは、RealProxyだとI/F経由じゃないと
いけないのが、DynamicProxyではI/Fの無いクラスでも
AOPを掛けられるってところかと思います。
なので、既にI/Fの無いクラスでAOPを利用しているのであれば、
RealProxyに変更すると想定外の挙動になってしまうかと。
こんな感じで、一項目ずつプロジェクトの状況と照らして下さい。

で、いずれにせよ、論理的にOKなのかどうかを
検証するのはもちろんですが、最終的には単体テストなどで
実際に実行してみて想定通りの動きになっているかを
確認する必要があります。というかそれが一番大事です。


あと、以前の話からの続きであれば、
Win7でDynamicProxy単体で(現象が)再現するプログラムを
って話があったと思いますが、そもそもの問題の原因が
明確にならない状態で回避策を練っていると、
「実はちょっとこうすれば問題なかった」
みたいなことになる可能性もありますので、
しっかり検証されることをお奨めします。
(RealProxyをどうのこうの考える必要があるのか
どうかも、この検証次第かと思います)

2010/4/27 Sohei Fukumura <[E-MAIL ADDRESS DELETED]>:
> いつもお世話になっております。
>
> ネットで調べておりますが、未だに、
> DynamicProxyをRealProxyに置換えても良いか。結論が出ずにおります。
> 調査中に、下記のような疑問を持ちました。
> 『<<
> http://s2container.net.seasar.org/ja/aop-summary.html#Seasar.DynamicProxy >>
> には
> S2AOP.NETは標準でSystem.Runtime.Remoting.Proxies.RealProxyを用いて実装されて
> いますが、 これをCastle.DynamicProxyを用いたSeasar.DynamicProxyに差し替える
> ことができます。』
> と記載されておりますが、逆に
> Castle.DynamicProxyを用いたSeasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに差し替えることも
> できると考えております。
> つまりは、Seasar.DynamicProxyを
> System.Runtime.Remoting.Proxies.RealProxyに
> 差し替えても機能的に問題がないものでしょうか。
>
> ※ソースコード(一部)※
> Aspectは、diconファイル上で下記のように設定しております。
>  <component class="Info.Dao.IKojinDao">
>    <aspect>DaoInterceptor</aspect>
>  </component>
>
> IKojinDao.csファイルで
> namespace Info.Dao
> {
>   [Bean(typeof(Kojin))]
>    public interface IKojinDao
>    {
>        int GetCount(Kojin dto)
> 以下省略
> }
>
> そして、Kojin.csファイルで
> namespace Info.Entity
> {
>    [Table("KOJIN")]
>    public class Kojin
>    {
>        private System.String _NAME
> 以下省略
> }
> と保持しており、同じ作りで
> component class
> を持たせております。
> 従って、Aspectを適用する為には、Inteface型で受け取るという条件は
> 満たしていると考えております。
>
> 度々、申し訳ございませんが、ご助言をいただけますでしょうか。
>
> 以上、よろしくお願い致します。
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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