|
|
@@ -101,6 +101,80 @@ namespace MonoTests.System.Reflection
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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
|
|
|
{
|
|
|
@@ -1402,5 +1476,18 @@ namespace MonoTests.System.Reflection
|
|
|
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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|