Expression.MemberInit Method (NewExpression, IEnumerable<MemberBinding>)
Represents an expression that creates a new object and initializes a property of the object.
Assembly: System.Core (in System.Core.dll)
public static MemberInitExpression MemberInit( NewExpression newExpression, IEnumerable<MemberBinding> bindings )
Parameters
- newExpression
-
Type:
System.Linq.Expressions.NewExpression
A NewExpression to set the NewExpression property equal to.
- bindings
-
Type:
System.Collections.Generic.IEnumerable<MemberBinding>
An IEnumerable<T> that contains MemberBinding objects to use to populate the Bindings collection.
Return Value
Type: System.Linq.Expressions.MemberInitExpressionA MemberInitExpression that has the NodeType property equal to MemberInit and the NewExpression and Bindings properties set to the specified values.
| Exception | Condition |
|---|---|
| ArgumentNullException | newExpression or bindings is null. |
| ArgumentException | The Member property of an element of bindings does not represent a member of the type that newExpression.Type represents. |
The Type property of the resulting MemberInitExpression is equal to the Type property of newExpression.
The following example demonstrates an expression that creates a new object and initializes a property of the object.
// Add the following directive to your file: // using System.Linq.Expressions; class TestMemberInitClass { public int sample { get; set; } } static void MemberInit() { // This expression creates a new TestMemberInitClass object // and assigns 10 to its sample property. Expression testExpr = Expression.MemberInit( Expression.New(typeof(TestMemberInitClass)), new List<MemberBinding>() { Expression.Bind(typeof(TestMemberInitClass).GetMember("sample")[0], Expression.Constant(10)) } ); // The following statement first creates an expression tree, // then compiles it, and then runs it. var test = Expression.Lambda<Func<TestMemberInitClass>>(testExpr).Compile()(); Console.WriteLine(test.sample); } // This code example produces the following output: // // 10
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1