Gets position of type parameter in the type parameter list of the generic type or method : MemberInfo « Reflection « C# / C Sharp






Gets position of type parameter in the type parameter list of the generic type or method

  

using System;
using System.Reflection;
using System.Collections.Generic;

public class Base<T, U> { }
public class Derived<V> : Base<int, V> { }

public class Test
{
    public static void Main()
    {
        Type derivedType = typeof(Derived<>);
        DisplayGenericTypeInfo(derivedType);
    }

    private static void DisplayGenericTypeInfo(Type t)
    {
        Console.WriteLine("\tIs this a generic type definition? {0}", t.IsGenericTypeDefinition);

        Console.WriteLine("\tIs it a generic type? {0}", t.IsGenericType);

        Console.WriteLine("\tDoes it have unassigned generic parameters? {0}", t.ContainsGenericParameters);

        if (t.IsGenericType)
        {
            Type[] typeArguments = t.GetGenericArguments();
            Console.WriteLine("\tList type arguments ({0}):", typeArguments.Length);

            foreach (Type tParam in typeArguments)
            {
                if (tParam.IsGenericParameter)
                {
                    Console.WriteLine(tParam);
                    Console.WriteLine(tParam.GenericParameterPosition);
                }
            }
        }
    }
}

   
    
  








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 a MethodBase that represents the declaring method, if the current Type represents a type parameter of a generic method.
17.Getter and Setter check
18.Sort Members List
19.Call Non Public Method