Поделиться через


Expression.Property Метод

Определение

Создает объект MemberExpression , представляющий доступ к свойству.

Перегрузки

Имя Описание
Property(Expression, String, Expression[])

IndexExpression Создает представление доступа к индексированного свойства.

Property(Expression, PropertyInfo, Expression[])

IndexExpression Создает представление доступа к индексированного свойства.

Property(Expression, PropertyInfo, IEnumerable<Expression>)

IndexExpression Создает представление доступа к индексированного свойства.

Property(Expression, Type, String)

Создает доступ к свойству MemberExpression .

Property(Expression, PropertyInfo)

Создает объект MemberExpression , представляющий доступ к свойству.

Property(Expression, MethodInfo)

Создает объект MemberExpression , представляющий доступ к свойству с помощью метода доступа к свойствам.

Property(Expression, String)

Создает объект MemberExpression , представляющий доступ к свойству.

Property(Expression, String, Expression[])

Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs

IndexExpression Создает представление доступа к индексированного свойства.

public:
 static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::String ^ propertyName, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[] arguments);
[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.IndexExpression Property(System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[]? arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, string propertyName, params System.Linq.Expressions.Expression[]? arguments);
static member Property : System.Linq.Expressions.Expression * string * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.IndexExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Property : System.Linq.Expressions.Expression * string * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, propertyName As String, ParamArray arguments As Expression()) As IndexExpression

Параметры

instance
Expression

Объект, к которому принадлежит свойство. Если свойство является статическим или общим, оно должно иметь значение NULL.

propertyName
String

Имя индексатора.

arguments
Expression[]

Массив объектов, используемых Expression для индексирования свойства.

Возвращаемое значение

Созданный IndexExpressionобъект.

Атрибуты

Применяется к

Property(Expression, PropertyInfo, Expression[])

Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs

IndexExpression Создает представление доступа к индексированного свойства.

public:
 static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::Reflection::PropertyInfo ^ indexer, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression? instance, System.Reflection.PropertyInfo indexer, params System.Linq.Expressions.Expression[]? arguments);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, indexer As PropertyInfo, ParamArray arguments As Expression()) As IndexExpression

Параметры

instance
Expression

Объект, к которому принадлежит свойство. Если свойство является статическим или общим, оно должно иметь значение NULL.

indexer
PropertyInfo

Объект PropertyInfo , представляющий свойство для индексирования.

arguments
Expression[]

Массив объектов, используемых Expression для индексирования свойства.

Возвращаемое значение

Созданный IndexExpressionобъект.

Применяется к

Property(Expression, PropertyInfo, IEnumerable<Expression>)

Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs
Исходный код:
IndexExpression.cs

IndexExpression Создает представление доступа к индексированного свойства.

public:
 static System::Linq::Expressions::IndexExpression ^ Property(System::Linq::Expressions::Expression ^ instance, System::Reflection::PropertyInfo ^ indexer, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.IndexExpression Property(System.Linq.Expressions.Expression? instance, System.Reflection.PropertyInfo indexer, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.IndexExpression
Public Shared Function Property (instance As Expression, indexer As PropertyInfo, arguments As IEnumerable(Of Expression)) As IndexExpression

Параметры

instance
Expression

Объект, к которому принадлежит свойство. Если свойство является статическим или общим, оно должно иметь значение NULL.

indexer
PropertyInfo

Объект PropertyInfo , представляющий свойство для индексирования.

arguments
IEnumerable<Expression>

Объект IEnumerable<T> , используемый Expression для индексирования свойства.

Возвращаемое значение

Созданный IndexExpressionобъект.

Применяется к

Property(Expression, Type, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

Создает доступ к свойству MemberExpression .

public:
 static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, Type ^ type, System::String ^ propertyName);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, Type type, string propertyName);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression? expression, Type type, string propertyName);
static member Property : System.Linq.Expressions.Expression * Type * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, type As Type, propertyName As String) As MemberExpression

Параметры

expression
Expression

Содержащий объект свойства. Это может быть null для статических свойств.

type
Type

Объект Type , содержащий свойство.

propertyName
String

Доступ к свойству.

Возвращаемое значение

Созданный MemberExpressionобъект.

Применяется к

Property(Expression, PropertyInfo)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

Создает объект MemberExpression , представляющий доступ к свойству.

public:
 static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::Reflection::PropertyInfo ^ property);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, System.Reflection.PropertyInfo property);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression? expression, System.Reflection.PropertyInfo property);
static member Property : System.Linq.Expressions.Expression * System.Reflection.PropertyInfo -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, property As PropertyInfo) As MemberExpression

Параметры

expression
Expression

Значение Expression , равное свойству Expression . Это может быть null для статических свойств.

property
PropertyInfo

Значение PropertyInfo для задания Member свойства равно.

Возвращаемое значение

Значение MemberExpression , равное свойству NodeTypeMemberAccess и ExpressionMember свойствам, заданным указанным значениям.

Исключения

property равно null.

–или–

Свойство, property представляющее значение , не является (Sharedstatic в Visual Basic) и expression имеет значение null.

expression. Тип нельзя назначить декларируемому типу свойства, property представляющего.

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству PropertyTypeMember.

Если свойство представлено propertystatic (Shared в Visual Basic), expression может быть null.

Применяется к

Property(Expression, MethodInfo)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

Создает объект MemberExpression , представляющий доступ к свойству с помощью метода доступа к свойствам.

public:
 static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ propertyAccessor);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo propertyAccessor);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Property metadata or other accessor may be trimmed.")]
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression? expression, System.Reflection.MethodInfo propertyAccessor);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression? expression, System.Reflection.MethodInfo propertyAccessor);
static member Property : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MemberExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Property metadata or other accessor may be trimmed.")>]
static member Property : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, propertyAccessor As MethodInfo) As MemberExpression

Параметры

expression
Expression

Значение Expression , равное свойству Expression . Это может быть null для статических свойств.

propertyAccessor
MethodInfo

Метод MethodInfo доступа к свойствам.

Возвращаемое значение

Значение, равное свойствуexpression, Expression свойству, заданному, и Member свойству, заданному PropertyInfo для свойства, представляющего свойство, доступ к которому имеется.propertyAccessorMemberExpressionNodeTypeMemberAccess

Атрибуты

Исключения

propertyAccessor равно null.

–или–

Метод, propertyAccessor представляющий не static (Shared в Visual Basic) и expression является null.

expression. Тип не присваивается декларируемому типу метода, propertyAccessorпредставленному .

–или–

Метод, propertyAccessor представляющий, не является методом доступа к свойствам.

Комментарии

Свойство Type результирующего MemberExpression объекта равно свойству PropertyTypeMember.

Если метод представлен propertyAccessorstatic (Shared в Visual Basic), expression может быть null.

Применяется к

Property(Expression, String)

Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs
Исходный код:
MemberExpression.cs

Создает объект MemberExpression , представляющий доступ к свойству.

public:
 static System::Linq::Expressions::MemberExpression ^ Property(System::Linq::Expressions::Expression ^ expression, System::String ^ propertyName);
public static System.Linq.Expressions.MemberExpression Property(System.Linq.Expressions.Expression expression, string propertyName);
[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 Property(System.Linq.Expressions.Expression expression, string propertyName);
static member Property : 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 Property : System.Linq.Expressions.Expression * string -> System.Linq.Expressions.MemberExpression
Public Shared Function Property (expression As Expression, propertyName As String) As MemberExpression

Параметры

expression
Expression

Объект Expression , в котором Type содержится свойство с именем propertyName. Это может быть null для статических свойств.

propertyName
String

Имя доступного свойства.

Возвращаемое значение

ОбъектMemberExpression, равный NodeTypeMemberAccessсвойствуexpression, Expression свойству, заданному, и Member свойству, заданному PropertyInfo для свойства, который представляет свойство, которое обозначаетсяpropertyName.

Атрибуты

Исключения

expression или propertyName есть null.

В параметре свойства. Тип или базовые типы.

Примеры

В следующем примере показано, как создать выражение, представляющее доступ к свойству.

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

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

 static void TestProperty()
 {
     TestPropertyClass obj = new TestPropertyClass();
     obj.sample = 40;

     // This expression represents accessing a property.
     // For static fields, the first parameter must be null.
     Expression propertyExpr = Expression.Property(
         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>>(propertyExpr).Compile()());
 }

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

Class TestPropertyClass
    Public Property Sample As Integer
End Class

Sub TestProperty()

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

    ' This expression represents accessing a property.
    ' For static properties, the first parameter must be Nothing.
    Dim propertyExpr As Expression = Expression.Property(
          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))(propertyExpr).Compile()())
End Sub

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

Комментарии

Свойство Type результирующего MemberExpression объекта равно PropertyType свойству PropertyInfo , представляющего свойство, которое обозначается propertyName.

Этот метод выполняет поиск expression. Тип и его базовые типы для свойства, имеющего имя propertyName. Общедоступные свойства задаются предпочтениями по сравнению с недоступными свойствами. Если найдено соответствующее свойство, этот метод передает expression и PropertyInfo представляет это свойство Property.

Применяется к