TypeInfo Class

Definition

Represents type declarations for class types, interface types, array types, value types, enumeration types, type parameters, generic type definitions, and open or closed constructed generic types.

public ref class TypeInfo abstract : Type, System::Reflection::IReflectableType
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public abstract class TypeInfo : Type, System.Reflection.IReflectableType
type TypeInfo = class
    inherit Type
    interface IReflectableType
Public MustInherit Class TypeInfo
Inherits Type
Implements IReflectableType
Inheritance
Attributes
Implements

Examples

This example uses the reflection types and members in the .NET for Windows 8.x Store apps subset to retrieve the methods and properties of the Calendar type, including inherited methods and properties. To run this code, paste it into the code file for a Windows 8.x Store XAML app that contains a Windows.UI.Xaml.Controls.Textblock control named textblock1.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Navigation;
using System.Reflection;
using System.Globalization;
using System.Text;


namespace Reflection
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
           this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            TypeInfo t = typeof(Calendar).GetTypeInfo();
            IEnumerable<PropertyInfo> pList = t.DeclaredProperties;
            IEnumerable<MethodInfo> mList = t.DeclaredMethods;

            StringBuilder sb = new StringBuilder();
           
            sb.Append("Properties:");
            foreach (PropertyInfo p in pList)
            {

                sb.Append("\n" + p.DeclaringType.Name + ": " + p.Name);
            }
            sb.Append("\nMethods:");
            foreach (MethodInfo m in mList)
            {
                sb.Append("\n" + m.DeclaringType.Name + ": " + m.Name);
            }
            
            textblock1.Text = sb.ToString();

        }
    }
}
Imports Windows.UI.Xaml.Navigation
Imports System.Reflection
Imports System.Globalization
Imports System.Text

Public NotInheritable Class MainPage
    Inherits Page

    Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
        Dim t As TypeInfo = GetType(Calendar).GetTypeInfo()
        Dim pList As IEnumerable(Of PropertyInfo) = t.DeclaredProperties
        Dim mList As IEnumerable(Of MethodInfo) = t.DeclaredMethods

        Dim sb As New StringBuilder()

        sb.Append("Properties:")
        For Each p As PropertyInfo In pList

            sb.Append((vbLf + p.DeclaringType.Name & ": ") + p.Name)
        Next
        sb.Append(vbLf & "Methods:")
        For Each m As MethodInfo In mList
            sb.Append((vbLf + m.DeclaringType.Name & ": ") + m.Name)
        Next

        textblock1.Text = sb.ToString()

    End Sub
End Class

Remarks

Starting with the .NET Framework 4.5, the TypeInfo class is included in the .NET for Windows 8.x Store apps subset for use in creating Windows Store apps. TypeInfo is available in the full .NET Framework as well. For more information about reflection for Windows Store apps, see System.Reflection namespaces in the Windows Dev Center and Reflection in the .NET Framework for Windows Store Apps in the MSDN Library.

TypeInfo contains many of the members available in the Type class, and many of the reflection properties in the .NET for Windows 8.x Store apps return collections of TypeInfo objects. To get a TypeInfo object from a Type object, use the IntrospectionExtensions.GetTypeInfo(Type) extension method.

A TypeInfo object represents the type definition itself, whereas a Type object represents a reference to the type definition. Getting a TypeInfo object forces the assembly that contains that type to load. In comparison, you can manipulate Type objects without necessarily requiring the runtime to load the assembly they reference.

In the .NET for Windows 8.x Store apps, you use the reflection properties of TypeInfo that return IEnumerable<T> collections instead of methods that return arrays. For example, use the DeclaredMembers property to get all declared members, or the DeclaredProperties property to get all declared properties. Reflection contexts can implement lazy traversal of these collections for large assemblies or types. To get specific members, use methods such as GetDeclaredMethod and GetDeclaredProperty, and pass the name of the method or property you would like to retrieve.

To filter the results of TypeInfo properties, use LINQ queries. For reflection objects that originate with the runtime (for example, as the result of typeof(Object)), you can traverse the inheritance tree by using the methods in the RuntimeReflectionExtensions class. Consumers of objects from customized reflection contexts cannot use these methods and must traverse the inheritance tree themselves.

Constructors

TypeInfo()

Initializes a TypeInfo instance.

Properties

Assembly
AssemblyQualifiedName
Attributes
BaseType
ContainsGenericParameters
CustomAttributes

Gets a collection that contains this member's custom attributes.

(Inherited from MemberInfo)
DeclaredConstructors

Gets a collection of the constructors declared by the current type.

DeclaredEvents

Gets a collection of the events defined by the current type.

DeclaredFields

Gets a collection of the fields defined by the current type.

DeclaredMembers

Gets a collection of the members defined by the current type.

DeclaredMethods

Gets a collection of the methods defined by the current type.

DeclaredNestedTypes

Gets a collection of the nested types defined by the current type.

DeclaredProperties

Gets a collection of the properties defined by the current type.

DeclaringMethod
DeclaringType

Gets the type that declares the current nested type or generic type parameter.

(Inherited from Type)
FullName
GenericParameterAttributes
GenericParameterPosition
GenericTypeArguments
GenericTypeParameters

Gets an array of the generic type parameters of the current instance.

GUID
HasElementType
ImplementedInterfaces

Gets a collection of the interfaces implemented by the current type.

IsAbstract
IsAnsiClass
IsArray
IsAutoClass
IsAutoLayout
IsByRef
IsByRefLike (Inherited from Type)
IsClass
IsCollectible

Gets a value that indicates whether this MemberInfo object is part of an assembly held in a collectible AssemblyLoadContext.

(Inherited from MemberInfo)
IsCOMObject
IsConstructedGenericType

Gets a value that indicates whether this object represents a constructed generic type. You can create instances of a constructed generic type.

(Inherited from Type)
IsContextful

Gets a value indicating whether the Type can be hosted in a context.

(Inherited from Type)
IsEnum
IsExplicitLayout
IsGenericMethodParameter (Inherited from Type)
IsGenericParameter
IsGenericType
IsGenericTypeDefinition
IsGenericTypeParameter (Inherited from Type)
IsImport
IsInterface
IsLayoutSequential
IsMarshalByRef
IsNested
IsNestedAssembly
IsNestedFamANDAssem
IsNestedFamily
IsNestedFamORAssem
IsNestedPrivate
IsNestedPublic
IsNotPublic
IsPointer
IsPrimitive
IsPublic
IsSealed
IsSecurityCritical

Gets a value that indicates whether the current type is security-critical or security-safe-critical at the current trust level, and therefore can perform critical operations.

(Inherited from Type)
IsSecuritySafeCritical

Gets a value that indicates whether the current type is security-safe-critical at the current trust level; that is, whether it can perform critical operations and can be accessed by transparent code.

(Inherited from Type)
IsSecurityTransparent

Gets a value that indicates whether the current type is transparent at the current trust level, and therefore cannot perform critical operations.

(Inherited from Type)
IsSerializable
IsSignatureType (Inherited from Type)
IsSpecialName
IsSZArray (Inherited from Type)
IsTypeDefinition (Inherited from Type)
IsUnicodeClass
IsValueType
IsVariableBoundArray (Inherited from Type)
IsVisible
MemberType
MetadataToken

Gets a value that identifies a metadata element.

(Inherited from MemberInfo)
Module

Gets the module (the DLL) in which the current Type is defined.

(Inherited from Type)
Name

When overridden in a derived class, gets the name of the current type.

(Inherited from Type)
Namespace
ReflectedType

Gets the class object that was used to obtain this member.

(Inherited from Type)
StructLayoutAttribute
TypeHandle

Gets the handle for the current Type.

(Inherited from Type)
TypeInitializer
UnderlyingSystemType

Methods

AsType()

Returns the current type as a Type object.

Equals(Object)

Determines if the underlying system type of the current Type object is the same as the underlying system type of the specified Object.

(Inherited from Type)
Equals(Type)

Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

(Inherited from Type)
FindInterfaces(TypeFilter, Object)
FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)
GetArrayRank()
GetAttributeFlagsImpl()

When overridden in a derived class, implements the Attributes property and gets a bitwise combination of enumeration values that indicate the attributes associated with the Type.

(Inherited from Type)
GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])

Searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Inherited from Type)
GetConstructor(Type[])
GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetConstructors()
GetConstructors(BindingFlags)
GetCustomAttributes(Boolean)

When overridden in a derived class, returns an array of all custom attributes applied to this member.

(Inherited from MemberInfo)
GetCustomAttributes(Type, Boolean)

When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type.

(Inherited from MemberInfo)
GetCustomAttributesData()

Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member.

(Inherited from MemberInfo)
GetDeclaredEvent(String)

Returns an object that represents the specified public event declared by the current type.

GetDeclaredField(String)

Returns an object that represents the specified public field declared by the current type.

GetDeclaredMethod(String)

Returns an object that represents the specified public method declared by the current type.

GetDeclaredMethods(String)

Returns a collection that contains all public methods declared on the current type that match the specified name.

GetDeclaredNestedType(String)

Returns an object that represents the specified public nested type declared by the current type.

GetDeclaredProperty(String)

Returns an object that represents the specified public property declared by the current type.

GetDefaultMembers()
GetElementType()
GetEnumName(Object)
GetEnumNames()
GetEnumUnderlyingType()
GetEnumValues()
GetEvent(String)
GetEvent(String, BindingFlags)
GetEvents()
GetEvents(BindingFlags)
GetField(String)
GetField(String, BindingFlags)
GetFields()
GetFields(BindingFlags)
GetGenericArguments()
GetGenericParameterConstraints()
GetGenericTypeDefinition()
GetHashCode()

Returns the hash code for this instance.

(Inherited from Type)
GetInterface(String)
GetInterface(String, Boolean)
GetInterfaceMap(Type)

Returns an interface mapping for the specified interface type.

(Inherited from Type)
GetInterfaces()
GetMember(String)
GetMember(String, BindingFlags)
GetMember(String, MemberTypes, BindingFlags)
GetMembers()
GetMembers(BindingFlags)
GetMethod(String)
GetMethod(String, BindingFlags)
GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])

Searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Inherited from Type)
GetMethod(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetMethod(String, Int32, BindingFlags, Binder, Type[], ParameterModifier[])

Searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints.

(Inherited from Type)
GetMethod(String, Int32, Type[])

Searches for the specified public method whose parameters match the specified generic parameter count and argument types.

(Inherited from Type)
GetMethod(String, Int32, Type[], ParameterModifier[])

Searches for the specified public method whose parameters match the specified generic parameter count, argument types and modifiers.

(Inherited from Type)
GetMethod(String, Type[])
GetMethod(String, Type[], ParameterModifier[])
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

When overridden in a derived class, searches for the specified method whose parameters match the specified generic parameter count, argument types and modifiers, using the specified binding constraints and the specified calling convention.

(Inherited from Type)
GetMethods()
GetMethods(BindingFlags)
GetNestedType(String)
GetNestedType(String, BindingFlags)
GetNestedTypes()
GetNestedTypes(BindingFlags)
GetProperties()
GetProperties(BindingFlags)
GetProperty(String)
GetProperty(String, BindingFlags)
GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Inherited from Type)
GetProperty(String, Type)
GetProperty(String, Type, Type[])
GetProperty(String, Type, Type[], ParameterModifier[])
GetProperty(String, Type[])
GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

When overridden in a derived class, searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.

(Inherited from Type)
GetType()

Gets the current Type.

(Inherited from Type)
GetTypeCodeImpl()

Returns the underlying type code of this Type instance.

(Inherited from Type)
HasElementTypeImpl()

When overridden in a derived class, implements the HasElementType property and determines whether the current Type encompasses or refers to another type; that is, whether the current Type is an array, a pointer, or is passed by reference.

(Inherited from Type)
HasSameMetadataDefinitionAs(MemberInfo) (Inherited from MemberInfo)
InvokeMember(String, BindingFlags, Binder, Object, Object[])

Invokes the specified member, using the specified binding constraints and matching the specified argument list.

(Inherited from Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], CultureInfo)

Invokes the specified member, using the specified binding constraints and matching the specified argument list and culture.

(Inherited from Type)
InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])

When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture.

(Inherited from Type)
IsArrayImpl()

When overridden in a derived class, implements the IsArray property and determines whether the Type is an array.

(Inherited from Type)
IsAssignableFrom(Type)
IsAssignableFrom(TypeInfo)

Returns a value that indicates whether the specified type can be assigned to the current type.

IsByRefImpl()

When overridden in a derived class, implements the IsByRef property and determines whether the Type is passed by reference.

(Inherited from Type)
IsCOMObjectImpl()

When overridden in a derived class, implements the IsCOMObject property and determines whether the Type is a COM object.

(Inherited from Type)
IsContextfulImpl()

Implements the IsContextful property and determines whether the Type can be hosted in a context.

(Inherited from Type)
IsDefined(Type, Boolean)

When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member.

(Inherited from MemberInfo)
IsEnumDefined(Object)
IsEquivalentTo(Type)
IsInstanceOfType(Object)
IsMarshalByRefImpl()

Implements the IsMarshalByRef property and determines whether the Type is marshaled by reference.

(Inherited from Type)
IsPointerImpl()

When overridden in a derived class, implements the IsPointer property and determines whether the Type is a pointer.

(Inherited from Type)
IsPrimitiveImpl()

When overridden in a derived class, implements the IsPrimitive property and determines whether the Type is one of the primitive types.

(Inherited from Type)
IsSubclassOf(Type)
IsValueTypeImpl()

Implements the IsValueType property and determines whether the Type is a value type; that is, not a class or an interface.

(Inherited from Type)
MakeArrayType()
MakeArrayType(Int32)
MakeByRefType()
MakeGenericType(Type[])
MakePointerType()
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Returns a String representing the name of the current Type.

(Inherited from Type)

Explicit Interface Implementations

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from MemberInfo)
_MemberInfo.GetType()

Gets a Type object representing the MemberInfo class.

(Inherited from MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Inherited from MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.

(Inherited from MemberInfo)
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Type)
_Type.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can then be used to get the type information for an interface.

(Inherited from Type)
_Type.GetTypeInfoCount(UInt32)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Type)
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.

(Inherited from Type)
ICustomAttributeProvider.GetCustomAttributes(Boolean) (Inherited from MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) (Inherited from MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean) (Inherited from MemberInfo)
IReflectableType.GetTypeInfo()

Returns a representation of the current type as a TypeInfo object.

Extension Methods

GetCustomAttribute(MemberInfo, Type)

Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute(MemberInfo, Type, Boolean)

Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttribute<T>(MemberInfo)

Retrieves a custom attribute of a specified type that is applied to a specified member.

GetCustomAttribute<T>(MemberInfo, Boolean)

Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo)

Retrieves a collection of custom attributes that are applied to a specified member.

GetCustomAttributes(MemberInfo, Boolean)

Retrieves a collection of custom attributes that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes(MemberInfo, Type)

Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes(MemberInfo, Type, Boolean)

Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

GetCustomAttributes<T>(MemberInfo)

Retrieves a collection of custom attributes of a specified type that are applied to a specified member.

GetCustomAttributes<T>(MemberInfo, Boolean)

Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.

IsDefined(MemberInfo, Type)

Indicates whether custom attributes of a specified type are applied to a specified member.

IsDefined(MemberInfo, Type, Boolean)

Indicates whether custom attributes of a specified type are applied to a specified member, and, optionally, applied to its ancestors.

GetTypeInfo(Type)

Returns the TypeInfo representation of the specified type.

GetMetadataToken(MemberInfo)

Gets a metadata token for the given member, if available.

HasMetadataToken(MemberInfo)

Returns a value that indicates whether a metadata token is available for the specified member.

GetRuntimeEvent(Type, String)

Retrieves an object that represents the specified event.

GetRuntimeEvents(Type)

Retrieves a collection that represents all the events defined on a specified type.

GetRuntimeField(Type, String)

Retrieves an object that represents a specified field.

GetRuntimeFields(Type)

Retrieves a collection that represents all the fields defined on a specified type.

GetRuntimeInterfaceMap(TypeInfo, Type)

Returns an interface mapping for the specified type and the specified interface.

GetRuntimeMethod(Type, String, Type[])

Retrieves an object that represents a specified method.

GetRuntimeMethods(Type)

Retrieves a collection that represents all methods defined on a specified type.

GetRuntimeProperties(Type)

Retrieves a collection that represents all the properties defined on a specified type.

GetRuntimeProperty(Type, String)

Retrieves an object that represents a specified property.

GetConstructor(Type, Type[])
GetConstructors(Type)
GetConstructors(Type, BindingFlags)
GetDefaultMembers(Type)
GetEvent(Type, String)
GetEvent(Type, String, BindingFlags)
GetEvents(Type)
GetEvents(Type, BindingFlags)
GetField(Type, String)
GetField(Type, String, BindingFlags)
GetFields(Type)
GetFields(Type, BindingFlags)
GetGenericArguments(Type)
GetInterfaces(Type)
GetMember(Type, String)
GetMember(Type, String, BindingFlags)
GetMembers(Type)
GetMembers(Type, BindingFlags)
GetMethod(Type, String)
GetMethod(Type, String, BindingFlags)
GetMethod(Type, String, Type[])
GetMethods(Type)
GetMethods(Type, BindingFlags)
GetNestedType(Type, String, BindingFlags)
GetNestedTypes(Type, BindingFlags)
GetProperties(Type)
GetProperties(Type, BindingFlags)
GetProperty(Type, String)
GetProperty(Type, String, BindingFlags)
GetProperty(Type, String, Type)
GetProperty(Type, String, Type, Type[])
IsAssignableFrom(Type, Type)
IsInstanceOfType(Type, Object)

Applies to