}
}
+ class MethodInfoWrapper : MethodInfo
+ {
+ private readonly MethodInfo method;
+
+ public MethodInfoWrapper (MethodInfo method)
+ {
+ this.method = method;
+ }
+
+ public override object[] GetCustomAttributes (bool inherit)
+ {
+ return method.GetCustomAttributes (inherit);
+ }
+
+ public override bool IsDefined (Type attributeType, bool inherit)
+ {
+ return method.IsDefined (attributeType, inherit);
+ }
+
+ public override ParameterInfo[] GetParameters ()
+ {
+ return method.GetParameters ();
+ }
+
+ public override MethodImplAttributes GetMethodImplementationFlags ()
+ {
+ return method.GetMethodImplementationFlags ();
+ }
+
+ public override object Invoke (object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture)
+ {
+ return method.Invoke (obj, invokeAttr, binder, parameters, culture);
+ }
+
+ public override MethodInfo GetBaseDefinition ()
+ {
+ return method.GetBaseDefinition ();
+ }
+
+ public override ICustomAttributeProvider ReturnTypeCustomAttributes {
+ get { return method.ReturnTypeCustomAttributes; }
+ }
+
+ public override string Name {
+ get { return method.Name; }
+ }
+
+ public override Type ReturnType {
+ get { return method.ReturnType; }
+ }
+
+ public override Type DeclaringType {
+ get { return method.DeclaringType; }
+ }
+
+ public override Type ReflectedType {
+ get { return method.ReflectedType; }
+ }
+
+ public override RuntimeMethodHandle MethodHandle {
+ get { return method.MethodHandle; }
+ }
+
+ public override MethodAttributes Attributes {
+ get { return method.Attributes; }
+ }
+
+ public override object[] GetCustomAttributes (Type attributeType, bool inherit)
+ {
+ return method.GetCustomAttributes (attributeType, inherit);
+ }
+ }
+
+
[TestFixture]
public class BinderTest
{
null, // target
new object [] { CultureInfo.CurrentCulture, "foo{0}{1}", "bar", "baz" }));
}
+
+ public static void CustomMethodType_Helper ()
+ {
+ }
+
+ [Test]
+ public void CustomMethodType ()
+ {
+ var method = new MethodInfoWrapper (GetType ().GetMethod ("CustomMethodType_Helper"));
+
+ var res = Type.DefaultBinder.SelectMethod (BindingFlags.Static | BindingFlags.Public, new[] { method }, Type.EmptyTypes, new ParameterModifier[0]);
+ Assert.AreSame (method, res);
+ }
}
}