Ler em inglês

Partilhar via


Type.GetProperty Método

Definição

Obtém uma propriedade específica do Type atual.

Sobrecargas

GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Pesquisa a propriedade especificada cujos parâmetros correspondem aos modificadores e tipos de argumento especificados, usando as restrições de associação especificadas.

GetProperty(String, Type, Type[], ParameterModifier[])

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento e modificadores especificados.

GetProperty(String, Type[])

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento especificados.

GetProperty(String, Type, Type[])

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento especificados.

GetProperty(String, BindingFlags)

Pesquisa a propriedade especificada usando as restrições de associação especificadas.

GetProperty(String)

Pesquisa a propriedade pública com o nome especificado.

GetProperty(String, Type)

Pesquisa a propriedade pública com o nome e tipo retornado especificados.

GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade especificada cujos parâmetros correspondem aos modificadores e tipos de argumento especificados, usando as restrições de associação especificadas.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, Type? returnType, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
C#
public System.Reflection.PropertyInfo GetProperty (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type returnType, Type[] types, System.Reflection.ParameterModifier[] modifiers);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade a ser obtida.

bindingAttr
BindingFlags

Uma combinação bit a bit dos valores de enumeração que especificam como a pesquisa é realizada.

- ou -

Default para retornar null.

binder
Binder

Um objeto que define um conjunto de propriedades e habilita a associação, que pode envolver seleção de um método sobrecarregado, coerção de tipos de argumento e invocação de um membro por meio da reflexão.

- ou -

Uma referência nula (Nothing no Visual Basic), para usar o DefaultBinder.

returnType
Type

O tipo de retorno da propriedade.

types
Type[]

Uma matriz de objetos Type que representam o número, a ordem e o tipo de parâmetros para a propriedade indexada a ser obtida.

- ou -

Uma matriz vazia do tipo Type (ou seja, tipos Type[] = novo Type[0]) para obter uma propriedade que não seja indexada.

modifiers
ParameterModifier[]

Uma matriz de objetos ParameterModifier que representam os atributos associados ao elemento correspondente na matriz types. O associador padrão não processa este parâmetro.

Retornos

Um objeto que representa a propriedade que corresponde aos requisitos especificados, se for encontrado; caso contrário, null.

Implementações

Exceções

É encontrada mais de uma propriedade com o nome especificado e que corresponde às restrições de associação especificadas.

name é null.

- ou -

types é null.

types é multidimensional.

- ou -

modifiers é multidimensional.

- ou -

types e modifiers não têm o mesmo tamanho.

Um elemento de types é null.

Comentários

Para obter mais informações sobre essa API, consulte Comentários de API complementares para Type.GetProperty.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String, Type, Type[], ParameterModifier[])

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento e modificadores especificados.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, Type? returnType, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
C#
public System.Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types, System.Reflection.ParameterModifier[] modifiers);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade pública a ser obtida.

returnType
Type

O tipo de retorno da propriedade.

types
Type[]

Uma matriz de objetos Type que representam o número, a ordem e o tipo de parâmetros para a propriedade indexada a ser obtida.

- ou -

Uma matriz vazia do tipo Type (ou seja, tipos Type[] = novo Type[0]) para obter uma propriedade que não seja indexada.

modifiers
ParameterModifier[]

Uma matriz de objetos ParameterModifier que representam os atributos associados ao elemento correspondente na matriz types. O associador padrão não processa este parâmetro.

Retornos

Um objeto que representa a propriedade pública que corresponde aos requisitos especificados, se encontrado; caso contrário, null.

Implementações

Exceções

Foi encontrada mais de uma propriedade com o nome especificado e que corresponde aos tipos de argumento e modificadores especificados.

name é null.

- ou -

types é null.

types é multidimensional.

- ou -

modifiers é multidimensional.

- ou -

types e modifiers não têm o mesmo tamanho.

Um elemento de types é null.

Exemplos

O exemplo a seguir obtém um Type objeto correspondente a MyPropertyClasse a propriedade indexada dessa classe é recuperada usando os argumentos passados para o GetProperty método .

C#
using System;
using System.Reflection;

public class MyPropertyClass
{
    private readonly int [,] _myPropertyArray = new int[10,10];
    // Declare an indexer.
    public int this [int i,int j]
    {
        get
        {
            return _myPropertyArray[i,j];
        }
        set
        {
            _myPropertyArray[i,j] = value;
        }
    }
}

public class MyTypeClass
{
    public static void Main()
    {
        try
        {
            Type myType=typeof(MyPropertyClass);
            Type[] myTypeArray = new Type[2];

            // Create an instance of the Type array representing the number, order
            // and type of the parameters for the property.
            myTypeArray.SetValue(typeof(int),0);
            myTypeArray.SetValue(typeof(int),1);

            // Search for the indexed property whose parameters match the
            // specified argument types and modifiers.
            PropertyInfo myPropertyInfo = myType.GetProperty("Item",
                typeof(int),myTypeArray,null);
            Console.WriteLine(myType.FullName + "." + myPropertyInfo.Name +
                " has a property type of " + myPropertyInfo.PropertyType);
         }
        catch(Exception ex)
        {
            Console.WriteLine("An exception occurred " + ex.Message);
        }
    }
}

Comentários

Uma propriedade é considerada pública para reflexão caso tenha pelo menos um acessador público. Caso contrário, a propriedade é considerada privada e você deve usar BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (no Visual Basic, combinar os valores usando Or) para obtê-la.

Embora o associador padrão não processe ParameterModifier (o parâmetro modifiers ), é possível usar a classe abstrata System.Reflection.Binder para gravar um associador personalizado que processa modifiers. ParameterModifier só é usado ao chamar por meio da interoperabilidade COM, e somente os parâmetros passados por referência são tratados.

A pesquisa de name diferencia maiúsculas de minúsculas. A pesquisa inclui propriedades de instância estática pública e pública.

Caso o Type atual represente um tipo genérico construído, este método retorna o PropertyInfo com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou método genérico, este método pesquisa as propriedades da restrição de classe.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String, Type[])

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento especificados.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, Type[] types);
C#
public System.Reflection.PropertyInfo GetProperty (string name, Type[] types);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade pública a ser obtida.

types
Type[]

Uma matriz de objetos Type que representam o número, a ordem e o tipo de parâmetros para a propriedade indexada a ser obtida.

- ou -

Uma matriz vazia do tipo Type (ou seja, tipos Type[] = novo Type[0]) para obter uma propriedade que não seja indexada.

Retornos

Um objeto que representa a propriedade pública cujos parâmetros correspondem aos tipos de argumento especificados, se encontrado, caso contrário, null.

Implementações

Exceções

Foi encontrada mais de uma propriedade com o nome especificado e que corresponde aos tipos de argumento especificados.

name é null.

- ou -

types é null.

types é multidimensional.

Um elemento de types é null.

Exemplos

O exemplo a seguir recupera o Type objeto de uma classe definida pelo usuário, recupera a propriedade dessa classe e exibe o nome da propriedade e o tipo da propriedade conforme especificado pelos argumentos passados para GetProperty.

C#

using System;
using System.Reflection;

class MyClass3
{
    private readonly int[,] _myArray = { { 1, 2 }, { 3, 4 } };
    // Declare an indexer.
    public int this[int i, int j]
    {
        get
        {
            return _myArray[i, j];
        }
        set
        {
            _myArray[i, j] = value;
        }
    }
}

public class MyTypeClass3
{
    public static void Main(string[] args)
    {
        try
        {
            // Get the Type object.
            Type myType = typeof(MyClass3);
            Type[] myTypeArr = new Type[2];

            // Create an instance of a Type array.
            myTypeArr.SetValue(typeof(int), 0);
            myTypeArr.SetValue(typeof(int), 1);

            // Get the PropertyInfo object for the indexed property Item, which has two integer parameters.
            PropertyInfo myPropInfo = myType.GetProperty("Item", myTypeArr);

            // Display the property.
            Console.WriteLine("The {0} property exists in MyClass3.",
                myPropInfo.ToString());
        }
        catch (NullReferenceException e)
        {
            Console.WriteLine("An exception occurred.");
            Console.WriteLine("Source : {0}", e.Source);
            Console.WriteLine("Message : {0}", e.Message);
        }
    }
}

Comentários

Uma propriedade é considerada pública para reflexão caso tenha pelo menos um acessador público. Caso contrário, a propriedade é considerada privada e você deve usar BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (no Visual Basic, combinar os valores usando Or) para obtê-la.

A pesquisa de name diferencia maiúsculas de minúsculas. A pesquisa inclui propriedades de instância estática pública e pública.

Caso o Type atual represente um tipo genérico construído, este método retorna o PropertyInfo com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou método genérico, este método pesquisa as propriedades da restrição de classe.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String, Type, Type[])

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade pública especificada cujos parâmetros correspondem aos tipos de argumento especificados.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, Type? returnType, Type[] types);
C#
public System.Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade pública a ser obtida.

returnType
Type

O tipo de retorno da propriedade.

types
Type[]

Uma matriz de objetos Type que representam o número, a ordem e o tipo de parâmetros para a propriedade indexada a ser obtida.

- ou -

Uma matriz vazia do tipo Type (ou seja, tipos Type[] = novo Type[0]) para obter uma propriedade que não seja indexada.

Retornos

Um objeto que representa a propriedade pública cujos parâmetros correspondem aos tipos de argumento especificados, se encontrado, caso contrário, null.

Implementações

Exceções

Foi encontrada mais de uma propriedade com o nome especificado e que corresponde aos tipos de argumento especificados.

name é null.

- ou -

types é null.

types é multidimensional.

Um elemento de types é null.

Comentários

Uma propriedade é considerada pública para reflexão caso tenha pelo menos um acessador público. Caso contrário, a propriedade é considerada privada e você deve usar BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (no Visual Basic, combinar os valores usando Or) para obtê-la.

A pesquisa de name diferencia maiúsculas de minúsculas. A pesquisa inclui propriedades de instância estática pública e pública.

Caso o Type atual represente um tipo genérico construído, este método retorna o PropertyInfo com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou método genérico, este método pesquisa as propriedades da restrição de classe.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String, BindingFlags)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade especificada usando as restrições de associação especificadas.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, System.Reflection.BindingFlags bindingAttr);
C#
public System.Reflection.PropertyInfo GetProperty (string name, System.Reflection.BindingFlags bindingAttr);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade a ser obtida.

bindingAttr
BindingFlags

Uma combinação bit a bit dos valores de enumeração que especificam como a pesquisa é realizada.

- ou -

Default para retornar null.

Retornos

Um objeto que representa a propriedade que corresponde aos requisitos especificados, se for encontrado; caso contrário, null.

Implementações

Exceções

É encontrada mais de uma propriedade com o nome especificado e que corresponde às restrições de associação especificadas.

name é null.

Exemplos

O exemplo a seguir recupera o tipo de uma classe definida pelo usuário, recupera uma propriedade dessa classe e exibe o nome da propriedade de acordo com as restrições de associação especificadas.

C#

using System;
using System.Reflection;

class MyClass2
{
    // Declare MyProperty.
    public int MyProperty { get; set; }
}

public class MyTypeClass2
{
    public static void Main(string[] args)
    {
        try
        {
            // Get Type object of MyClass2.
            Type myType = typeof(MyClass2);

            // Get the PropertyInfo by passing the property name and specifying the BindingFlags.
            PropertyInfo myPropInfo = myType.GetProperty(
                "MyProperty",
                BindingFlags.Public | BindingFlags.Instance
                );

            // Display Name property to console.
            Console.WriteLine("{0} is a property of MyClass2.", myPropInfo.Name);
        }
        catch (NullReferenceException e)
        {
            Console.WriteLine("MyProperty does not exist in MyClass2." + e.Message);
        }
    }
}

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade pública com o nome especificado.

C#
public System.Reflection.PropertyInfo? GetProperty (string name);
C#
public System.Reflection.PropertyInfo GetProperty (string name);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade pública a ser obtida.

Retornos

Um objeto que representa a propriedade pública com o nome especificado, se encontrado; caso contrário, null.

Implementações

Exceções

Foi encontrada mais de uma propriedade com o nome especificado.

name é null.

Exemplos

O exemplo a seguir recupera o Type objeto de uma classe definida pelo usuário, recupera uma propriedade dessa classe e exibe o nome da propriedade.

C#
using System;
using System.Reflection;

class MyClass1
{
    // Declare MyProperty.
    public int MyProperty { get; set; }
}

public class MyTypeClass1
{
    public static void Main(string[] args)
    {
        try
        {
            // Get the Type object corresponding to MyClass1.
            Type myType = typeof(MyClass1);

            // Get the PropertyInfo object by passing the property name.
            PropertyInfo myPropInfo = myType.GetProperty("MyProperty");

            // Display the property name.
            Console.WriteLine("The {0} property exists in MyClass1.", myPropInfo.Name);
        }
        catch (NullReferenceException e)
        {
            Console.WriteLine("The property does not exist in MyClass1." + e.Message);
        }
    }
}

Comentários

Para obter mais informações sobre essa API, consulte Comentários de API complementares para Type.GetProperty.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetProperty(String, Type)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a propriedade pública com o nome e tipo retornado especificados.

C#
public System.Reflection.PropertyInfo? GetProperty (string name, Type? returnType);
C#
public System.Reflection.PropertyInfo GetProperty (string name, Type returnType);

Parâmetros

name
String

A cadeia de caracteres que contém o nome da propriedade pública a ser obtida.

returnType
Type

O tipo de retorno da propriedade.

Retornos

Um objeto que representa a propriedade pública com o nome especificado, se encontrado; caso contrário, null.

Implementações

Exceções

Foi encontrada mais de uma propriedade com o nome especificado.

O name é null ou o returnType é null.

Exemplos

O exemplo a seguir define uma classe com uma propriedade e recupera o nome e o tipo da propriedade.

C#

using System;
using System.Reflection;

class MyPropertyTypeClass
{
    public string MyProperty1 { get; set; } = "Hello World.";
}

class TestClass
{
    static void Main()
    {
        try
        {
            Type myType = typeof(MyPropertyTypeClass);

            // Get the PropertyInfo object representing MyProperty1.
            PropertyInfo myStringProperties1 = myType.GetProperty("MyProperty1", typeof(string));

            Console.WriteLine("The name of the first property of MyPropertyTypeClass is {0}.",
                myStringProperties1.Name);
            Console.WriteLine("The type of the first property of MyPropertyTypeClass is {0}.",
                myStringProperties1.PropertyType);
        }
        catch (ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException :" + e.Message);
        }
        catch (AmbiguousMatchException e)
        {
            Console.WriteLine("AmbiguousMatchException :" + e.Message);
        }
        catch (NullReferenceException e)
        {
            Console.WriteLine("Source : {0}", e.Source);
            Console.WriteLine("Message : {0}", e.Message);
        }
        //Output:
        //The name of the first property of MyPropertyTypeClass is MyProperty1.
        //The type of the first property of MyPropertyTypeClass is System.String.
    }
}

Comentários

Uma propriedade é considerada pública para reflexão caso tenha pelo menos um acessador público. Caso contrário, a propriedade é considerada privada e você deve usar BindingFlags.NonPublic | | BindingFlags.InstanceBindingFlags.Static (no Visual Basic, combinar os valores usando Or) para obtê-la.

A pesquisa de name diferencia maiúsculas de minúsculas. A pesquisa inclui propriedades de instância estática pública e pública.

Caso o Type atual represente um tipo genérico construído, este método retorna o PropertyInfo com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou método genérico, este método pesquisa as propriedades da restrição de classe.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1