Update of /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Proxy
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv15476/Proxy
Modified Files:
AbstractProxyMethodBuilder.cs
Log Message:
Added Inheritance-based aop proxy.
Index: AbstractProxyMethodBuilder.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/src/Spring/Spring.Core/Proxy/AbstractProxyMethodBuilder.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** AbstractProxyMethodBuilder.cs 28 Jul 2007 00:33:20 -0000 1.6
--- AbstractProxyMethodBuilder.cs 6 Feb 2008 18:26:42 -0000 1.7
***************
*** 97,102 ****
DefineMethod(method, interfaceMethod, explicitImplementation);
- DefineParameters(methodBuilder, method);
-
ILGenerator il = methodBuilder.GetILGenerator();
--- 97,100 ----
***************
*** 193,196 ****
--- 191,228 ----
#if NET_2_0
+ DefineGenericParameters(methodBuilder, method);
+ #endif
+ DefineParameters(methodBuilder, method);
+
+ return methodBuilder;
+ }
+
+ /// <summary>
+ /// Defines method parameters based on proxied method metadata.
+ /// </summary>
+ /// <param name="methodBuilder">
+ /// The <see cref="System.Reflection.Emit.MethodBuilder"/> to use.
+ /// </param>
+ /// <param name="method">The method to proxy.</param>
+ protected void DefineParameters(MethodBuilder methodBuilder, MethodInfo method)
+ {
+ int n = 1;
+ foreach (ParameterInfo param in method.GetParameters())
+ {
+ ParameterBuilder pb = methodBuilder.DefineParameter(n, param.Attributes, param.Name);
+ n++;
+ }
+ }
+
+ #if NET_2_0
+ /// <summary>
+ /// Defines generic method parameters based on proxied method metadata.
+ /// </summary>
+ /// <param name="methodBuilder">
+ /// The <see cref="System.Reflection.Emit.MethodBuilder"/> to use.
+ /// </param>
+ /// <param name="method">The method to proxy.</param>
+ protected void DefineGenericParameters(MethodBuilder methodBuilder, MethodInfo method)
+ {
if (method.IsGenericMethodDefinition)
{
***************
*** 198,202 ****
// define generic parameters
! GenericTypeParameterBuilder[] gtpBuilders =
methodBuilder.DefineGenericParameters(ReflectionUtils.GetGenericParameterNames(genericArguments));
--- 230,234 ----
// define generic parameters
! GenericTypeParameterBuilder[] gtpBuilders =
methodBuilder.DefineGenericParameters(ReflectionUtils.GetGenericParameterNames(genericArguments));
***************
*** 218,242 ****
}
}
- #endif
-
- return methodBuilder;
- }
-
- /// <summary>
- /// Defines method parameters based on proxied method metadata.
- /// </summary>
- /// <param name="methodBuilder">
- /// The <see cref="System.Reflection.Emit.MethodBuilder"/> to use.
- /// </param>
- /// <param name="method">The method to proxy.</param>
- protected virtual void DefineParameters(MethodBuilder methodBuilder, MethodInfo method)
- {
- int n = 1;
- foreach (ParameterInfo param in method.GetParameters())
- {
- ParameterBuilder pb = methodBuilder.DefineParameter(n, param.Attributes, param.Name);
- n++;
- }
}
/// <summary>
--- 250,255 ----
}
}
}
+ #endif
/// <summary>
|