Gets a MethodBase that represents the declaring method, if the current Type represents a type parameter of a generic method. : MemberInfo « Reflection « C# / C Sharp






Gets a MethodBase that represents the declaring method, if the current Type represents a type parameter of a generic method.

  


using System;
using System.Reflection;

public class Example
{
    public static void Generic<T>(T toDisplay)
    {
        Console.WriteLine("\r\nHere it is: {0}", toDisplay);
    }
}

public class Test
{
    public static void Main()
    {
        Type ex = typeof(Example);
        MethodInfo mi = ex.GetMethod("Generic");

        DisplayGenericMethodInfo(mi);
    }

    private static void DisplayGenericMethodInfo(MethodInfo mi)
    {
        Console.WriteLine("", mi);
        Console.WriteLine("Is this a generic method definition? {0}", mi.IsGenericMethodDefinition);

        Console.WriteLine("Is it a generic method? {0}", mi.IsGenericMethod);

        Console.WriteLine("Does it have unassigned generic parameters? {0}", mi.ContainsGenericParameters);

        if (mi.IsGenericMethod)
        {
            Type[] typeArguments = mi.GetGenericArguments();

            Console.WriteLine("List type arguments ({0}):", typeArguments.Length);

            foreach (Type tParam in typeArguments)
            {
                if (tParam.IsGenericParameter){
                    Console.WriteLine("{0}  parameter position {1}" +
                        "\n declaring method: {2}",
                        tParam,
                        tParam.GenericParameterPosition,
                        tParam.DeclaringMethod);
                }
                else
                {
                    Console.WriteLine("\t\t{0}", tParam);
                }
            }
        }
    }
}

   
    
  








Related examples in the same category

1.Get MethodInfo and MemberInfo
2.Deeper Reflection:Finding MembersDeeper Reflection:Finding Members
3.Get variable base type and public numbers
4.Gets the member's underlying type.
5.Gets the member's value on the object.
6.Sets the member's value on the target object.
7.Determines whether the specified MemberInfo can be read.
8.Determines whether the specified MemberInfo can be set.
9.MemberInfo.DeclaringType Property gets the class that declares this member.
10.MemberInfo.GetCustomAttributes returns an array of all custom attributes applied to this member.
11.Get a MemberTypes value indicating the type of the member(method, constructor, event, and so on.)
12.Gets the module in which the type that declares the member represented by the current MemberInfo is defined.Gets the module in which the type that declares the member represented by the current MemberInfo is defined.
13.Gets the name of the current member.
14.Gets the class object that was used to obtain this instance of MemberInfo.
15.Marks each type of member that is defined as a derived class of MemberInfo.
16.Gets position of type parameter in the type parameter list of the generic type or method
17.Getter and Setter check
18.Sort Members List
19.Call Non Public Method