Genéricos e reflexão (Guia de Programação em C#)Generics and Reflection (C# Programming Guide)

Como o tempo de execução do CLR (Common Language Runtime) tem acesso às informações de tipo genérico em tempo de execução, você pode usar a reflexão para obter informações sobre tipos genéricos da mesma forma como para tipos não genéricos.Because the Common Language Runtime (CLR) has access to generic type information at run time, you can use reflection to obtain information about generic types in the same way as for non-generic types. Para obter mais informações, consulte Genéricos em tempo de execução.For more information, see Generics in the Run Time.

No .NET Framework 2.0.NET Framework 2.0 foram adicionados diversos novos membros à classe Type para habilitar as informações em tempo de execução para tipos genéricos.In the .NET Framework 2.0.NET Framework 2.0 several new members are added to the Type class to enable run-time information for generic types. Consulte a documentação dessas classes para obter mais informações sobre como usar esses métodos e propriedades.See the documentation on these classes for more information on how to use these methods and properties. O namespace System.Reflection.Emit também contém novos membros que dão suporte a genéricos.The System.Reflection.Emit namespace also contains new members that support generics. Consulte Como definir um tipo genérico com a emissão de reflexão.See How to: Define a Generic Type with Reflection Emit.

Para obter uma lista das condições invariáveis para termos usados na reflexão genérica, consulte os comentários da propriedade IsGenericType.For a list of the invariant conditions for terms used in generic reflection, see the IsGenericType property remarks.

Nome do membro System.TypeSystem.Type Member Name DescriçãoDescription
IsGenericType Retorna verdadeiro se um tipo for genérico.Returns true if a type is generic.
GetGenericArguments Retorna uma matriz de objetos Type que representa os argumentos de tipo fornecidos para um tipo construído ou os parâmetros de tipo de uma definição de tipo genérico.Returns an array of Type objects that represent the type arguments supplied for a constructed type, or the type parameters of a generic type definition.
GetGenericTypeDefinition Retorna a definição de tipo genérico subjacente para o tipo construído atual.Returns the underlying generic type definition for the current constructed type.
GetGenericParameterConstraints Retorna uma matriz de objetos Type que representam as restrições no parâmetro de tipo genérico atual.Returns an array of Type objects that represent the constraints on the current generic type parameter.
ContainsGenericParameters Retorna verdadeiro se o tipo ou qualquer um dos seus tipos ou métodos de delimitação contêm parâmetros de tipo para os quais não foram fornecidos tipos específicos.Returns true if the type or any of its enclosing types or methods contain type parameters for which specific types have not been supplied.
GenericParameterAttributes Obtém uma combinação de sinalizadores GenericParameterAttributes que descrevem as restrições especiais do parâmetro de tipo genérico atual.Gets a combination of GenericParameterAttributes flags that describe the special constraints of the current generic type parameter.
GenericParameterPosition Para um objeto Type que representa um parâmetro de tipo, obtém a posição do parâmetro de tipo na lista de parâmetros de tipo da definição de tipo genérico ou da definição de método genérico que declarou o parâmetro de tipo.For a Type object that represents a type parameter, gets the position of the type parameter in the type parameter list of the generic type definition or generic method definition that declared the type parameter.
IsGenericParameter Obtém um valor que indica se o Type atual representa um parâmetro de tipo de um tipo genérico ou uma definição de método.Gets a value that indicates whether the current Type represents a type parameter of a generic type or method definition.
IsGenericTypeDefinition Obtém um valor que indica se o Type atual representa uma definição de tipo genérico, da qual outros tipos genéricos podem ser construídos.Gets a value that indicates whether the current Type represents a generic type definition, from which other generic types can be constructed. Retorna verdadeiro se o tipo representa a definição de um tipo genérico.Returns true if the type represents the definition of a generic type.
DeclaringMethod Retorna o método genérico que definiu o parâmetro de tipo genérico atual ou nulo, se o parâmetro de tipo não foi definido por um método genérico.Returns the generic method that defined the current generic type parameter, or null if the type parameter was not defined by a generic method.
MakeGenericType Substitui os elementos de uma matriz de tipos pelos parâmetros de tipo da definição de tipo genérico atual e retorna um objeto Type que representa o tipo construído resultante.Substitutes the elements of an array of types for the type parameters of the current generic type definition, and returns a Type object representing the resulting constructed type.

Além disso, membros da classe MethodInfo habilitam informações em tempo de execução para métodos genéricos.In addition, members of the MethodInfo class enable run-time information for generic methods. Consulte os comentários sobre a propriedade IsGenericMethod para obter uma lista das condições invariáveis para termos usados para refletir sobre os métodos genéricos.See the IsGenericMethod property remarks for a list of invariant conditions for terms used to reflect on generic methods.

Nome do membro System.Reflection.MemberInfoSystem.Reflection.MemberInfo Member Name DescriçãoDescription
IsGenericMethod Retorna verdadeiro se um método for genérico.Returns true if a method is generic.
GetGenericArguments Retorna uma matriz de objetos Type que representam os argumentos de tipo de um método genérico construído ou os parâmetros de tipo de uma definição de método genérico.Returns an array of Type objects that represent the type arguments of a constructed generic method or the type parameters of a generic method definition.
GetGenericMethodDefinition Retorna a definição de método genérico subjacente para o método construído atual.Returns the underlying generic method definition for the current constructed method.
ContainsGenericParameters Retorna verdadeiro se o método ou qualquer um dos seus tipos de delimitação contêm parâmetros de tipo para os quais não foram fornecidos tipos específicos.Returns true if the method or any of its enclosing types contain any type parameters for which specific types have not been supplied.
IsGenericMethodDefinition Retorna verdadeiro se o MethodInfo atual representar a definição de um método genérico.Returns true if the current MethodInfo represents the definition of a generic method.
MakeGenericMethod Substitui os elementos de uma matriz de tipos pelos parâmetros de tipo da definição de método genérico atual e retorna um objeto MethodInfo que representa o método construído resultante.Substitutes the elements of an array of types for the type parameters of the current generic method definition, and returns a MethodInfo object representing the resulting constructed method.

Consulte tambémSee Also