DynamicAopProxy変更

今日のエントリを書いていて、ふと思うところがあって修正。(暫定なので問題があれば戻すかも)

Seasar.Framework.Aop.DynamicProxy.DynamicAopProxy.cs

  • 自身のインスタンスを生成したタイミングで、拡張した型を生成するように変更している。そのためにプロパティ"EnhancedType"を追加し、このプロパティで拡張された型を取得可能。
  • 拡張した型をコンストラクタ実行時に生成するようにしたので、#Createメソッドがシンプルになっている。例えば引数付きのメソッドであれば、
public object Create(Type argTypes, object args)
{
    ArrayList newArgs = new ArrayList();
    newArgs.Add(this);
    newArgs.AddRange(args);
    return Activator.CreateInstance(this.enhancedType, newArgs.ToArray());
}

となる。(パラメタargTypesは本当は不要なのだが、AOPProxyとの互換性のために存在している)