mscorlib(4.0.0.0) API with additions
MemberExpression.cs
1 using System.Diagnostics;
2 using System.Dynamic.Utils;
3 using System.Reflection;
4 
6 {
8  [DebuggerTypeProxy(typeof(MemberExpressionProxy))]
9  [global::__DynamicallyInvokable]
11  {
12  private readonly Expression _expression;
13 
16  [global::__DynamicallyInvokable]
17  public MemberInfo Member
18  {
19  [global::__DynamicallyInvokable]
20  get
21  {
22  return GetMember();
23  }
24  }
25 
28  [global::__DynamicallyInvokable]
29  public Expression Expression
30  {
31  [global::__DynamicallyInvokable]
32  get
33  {
34  return _expression;
35  }
36  }
37 
40  [global::__DynamicallyInvokable]
41  public sealed override ExpressionType NodeType
42  {
43  [global::__DynamicallyInvokable]
44  get
45  {
46  return ExpressionType.MemberAccess;
47  }
48  }
49 
50  internal MemberExpression(Expression expression)
51  {
52  _expression = expression;
53  }
54 
55  internal static MemberExpression Make(Expression expression, MemberInfo member)
56  {
57  if (member.MemberType == MemberTypes.Field)
58  {
59  FieldInfo member2 = (FieldInfo)member;
60  return new FieldExpression(expression, member2);
61  }
62  PropertyInfo member3 = (PropertyInfo)member;
63  return new PropertyExpression(expression, member3);
64  }
65 
66  internal virtual MemberInfo GetMember()
67  {
68  throw ContractUtils.Unreachable;
69  }
70 
74  [global::__DynamicallyInvokable]
75  protected internal override Expression Accept(ExpressionVisitor visitor)
76  {
77  return visitor.VisitMember(this);
78  }
79 
83  [global::__DynamicallyInvokable]
84  public MemberExpression Update(Expression expression)
85  {
86  if (expression == Expression)
87  {
88  return this;
89  }
90  return Expression.MakeMemberAccess(expression, Member);
91  }
92  }
93 }
Obtains information about the attributes of a member and provides access to member metadata.
Definition: MemberInfo.cs:14
Expression Expression
Gets the containing object of the field or property.
Represents accessing a field or property.
Discovers the attributes of a field and provides access to field metadata.
Definition: FieldInfo.cs:15
Definition: __Canon.cs:3
Provides the base class from which the classes that represent expression tree nodes are derived....
Definition: Expression.cs:17
sealed override ExpressionType NodeType
Returns the node type of this P:System.Linq.Expressions.MemberExpression.Expression.
ExpressionType
Describes the node types for the nodes of an expression tree.
Discovers the attributes of a property and provides access to property metadata.
Definition: PropertyInfo.cs:15
MemberInfo Member
Gets the field or property to be accessed.
abstract MemberTypes MemberType
When overridden in a derived class, gets a T:System.Reflection.MemberTypes value indicating the type ...
Definition: MemberInfo.cs:19
internal override Expression Accept(ExpressionVisitor visitor)
Dispatches to the specific visit method for this node type. For example, T:System....
MemberTypes
Marks each type of member that is defined as a derived class of T:System.Reflection....
Definition: MemberTypes.cs:9
virtual internal Expression VisitMember(MemberExpression node)
Visits the children of the T:System.Linq.Expressions.MemberExpression.
Represents a visitor or rewriter for expression trees.
MemberExpression Update(Expression expression)
Creates a new expression that is like this one, but using the supplied children. If all of the childr...