MemberInitExpression Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Represents calling a constructor and initializing one or more members of the new object.
Assembly: System.Core (in System.Core.dll)
The MemberInitExpression type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | Bindings | Gets the bindings that describe how to initialize the members of the newly created object. |
![]() | CanReduce | Gets a value that indicates whether the expression tree node can be reduced. (Overrides Expression.CanReduce.) |
![]() | NewExpression | Gets the expression that represents the constructor call. |
![]() | NodeType | Returns the node type of this Expression. Extension nodes should return Extension when overriding this method. (Overrides Expression.NodeType.) |
![]() | Type | Gets the static type of the expression that this Expression represents. (Overrides Expression.Type.) |
| Name | Description | |
|---|---|---|
![]() | Accept | Dispatches to the specific visit method for this node type. For example, MethodCallExpression calls the VisitMethodCall. (Inherited from Expression.) |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | Reduce | Reduces the MemberInitExpression to a simpler expression. (Overrides Expression.Reduce().) |
![]() | ReduceAndCheck | Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced. (Inherited from Expression.) |
![]() | ReduceExtensions | Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type. (Inherited from Expression.) |
![]() | ToString | Returns a textual representation of the Expression. (Inherited from Expression.) |
![]() | Update | Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression. |
![]() | VisitChildren | Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible. (Inherited from Expression.) |
Use the MemberInit factory methods to create a MemberInitExpression.
The value of the NodeType property of a MemberInitExpression is MemberInit.
The following example creates a MemberInitExpression that represents the initialization of two members of a new object.
class Animal { public string Species { get; set; } public int Age { get; set; } } public static void CreateMemberInitExpression(System.Windows.Controls.TextBlock outputBlock) { System.Linq.Expressions.NewExpression newAnimal = System.Linq.Expressions.Expression.New(typeof(Animal)); System.Reflection.MemberInfo speciesMember = typeof(Animal).GetMember("Species")[0]; System.Reflection.MemberInfo ageMember = typeof(Animal).GetMember("Age")[0]; // Create a MemberBinding object for each member // that you want to initialize. System.Linq.Expressions.MemberBinding speciesMemberBinding = System.Linq.Expressions.Expression.Bind( speciesMember, System.Linq.Expressions.Expression.Constant("horse")); System.Linq.Expressions.MemberBinding ageMemberBinding = System.Linq.Expressions.Expression.Bind( ageMember, System.Linq.Expressions.Expression.Constant(12)); // Create a MemberInitExpression that represents initializing // two members of the 'Animal' class. System.Linq.Expressions.MemberInitExpression memberInitExpression = System.Linq.Expressions.Expression.MemberInit( newAnimal, speciesMemberBinding, ageMemberBinding); outputBlock.Text += memberInitExpression.ToString() + "\n"; // This code produces the following output: // // new Animal() {Species = "horse", Age = 12} }


