Expression.PropertyOrField(Expression, String) Método

Definição

Cria um MemberExpression que representa o acesso a uma propriedade ou campo.

public:
 static System::Linq::Expressions::MemberExpression ^ PropertyOrField(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyOrFieldName);
public static System.Linq.Expressions.MemberExpression PropertyOrField(System.Linq.Expressions.Expression expression, string propertyOrFieldName);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.MemberExpression PropertyOrField(System.Linq.Expressions.Expression expression, string propertyOrFieldName);
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member PropertyOrField : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function PropertyOrField (expression As Expression, propertyOrFieldName As String) As MemberExpression

Parâmetros

expression
Expression

Um Expression contém Type uma propriedade ou corpo chamado propertyOrFieldName.

propertyOrFieldName
String

O nome de uma propriedade ou campo a ser acedido.

Devoluções

A MemberExpression que tem a NodeType propriedade igual a MemberAccess, a Expression propriedade definida a expression, e a Member propriedade definida a PropertyInfo ou FieldInfo que representa a propriedade ou corpo denotado por propertyOrFieldName.

Atributos

Exceções

expression ou propertyOrFieldName é null.

Nenhuma propriedade ou corpo nomeado propertyOrFieldName está definido em expression. Tipo ou os seus tipos base.

Exemplos

O exemplo seguinte mostra como criar uma expressão que represente o acesso a uma propriedade ou campo.

// Add the following directive to your file:
// using System.Linq.Expressions;

class TestClass
{
    public int sample { get; set; }
}

static void TestPropertyOrField()
{
    TestClass obj = new TestClass();
    obj.sample = 40;

    // This expression represents accessing a property or field.
    // For static properties or fields, the first parameter must be null.
    Expression memberExpr = Expression.PropertyOrField(
        Expression.Constant(obj),
        "sample"
    );

    // The following statement first creates an expression tree,
    // then compiles it, and then runs it.
    Console.WriteLine(Expression.Lambda<Func<int>>(memberExpr).Compile()());
}

// This code example produces the following output:
//
// 40
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Class TestClass
    Public Property Sample As Integer
End Class

Sub TestPropertyOrField()

    Dim obj As New TestClass()
    obj.Sample = 40

    ' This expression represents accessing a property or field.
    ' For static properties or fields, the first parameter must be Nothing.
    Dim memberExpr As Expression = Expression.PropertyOrField(
          Expression.Constant(obj),
          "Sample"
      )

    ' The following statement first creates an expression tree,
    ' then compiles it, and then runs it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(memberExpr).Compile()())
End Sub

' This code example produces the following output:
'
' 40

Observações

A Type propriedade do resultado MemberExpression é igual às PropertyType propriedades FieldType ou de ou PropertyInfoFieldInfo, respetivamente, que representam a propriedade ou corpo denotado por propertyOrFieldName.

Este método pesquisa expression. Tipo e os seus tipos base para uma propriedade de instância ou corpo que tem o nome propertyOrFieldName. Propriedades estáticas ou campos não são suportados. Propriedades e campos públicos têm preferência sobre propriedades e campos não públicos. Além disso, as propriedades têm preferência em relação aos corpos. Se for encontrada uma propriedade ou campo correspondente, este método passa expression e o PropertyInfo ou FieldInfo que representa essa propriedade ou campo para Property ou Field, respetivamente.

Aplica-se a