public void MemberBind() { var expected = LinqExpression.MemberInit( LinqExpression.New( typeof(SampleClass)), LinqExpression.MemberBind( typeof(SampleClass).GetField(nameof(SampleClass.ComplexField)), LinqExpression.Bind( typeof(SampleClass).GetField(nameof(SampleClass.InstanceField)), LinqExpression.Constant( string.Empty)))); var actual = @" @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix : <http://example.com/> . :s :memberInitNewExpression [ :newType _:C3 ; ] ; :memberInitBindings ( [ :bindMember [ a :Member ; :memberType _:C3 ; :memberName ""ComplexField"" ; ] ; :memberBindBindings ( [ :bindMember [ :memberType _:C3 ; :memberName ""InstanceField"" ; ] ; :bindExpression [ :constantValue """" ; ] ; ] ) ; ] ) ; . _:C3 a :Type ; :typeName ""GraphEngine.Tests.SampleClass, GraphEngine.Tests"" ; . "; ShouldBe(actual, expected); }
public static System.Linq.Expressions.Expression <Func <object[], object> > CreateComplexExpression() { var stateParamExpr = SysExpr.Parameter(typeof(object[])); var funcExpr = SysExpr.Lambda <Func <object[], object> >( SysExpr.MemberInit( SysExpr.New(_ctorOfA, SysExpr.New(_ctorOfB), SysExpr.Convert(SysExpr.ArrayIndex(stateParamExpr, SysExpr.Constant(11)), typeof(string)), SysExpr.NewArrayInit(typeof(ID), SysExpr.New(_ctorOfD1), SysExpr.New(_ctorOfD2))), SysExpr.Bind(_propAProp, SysExpr.New(_ctorOfP, SysExpr.New(_ctorOfB))), SysExpr.Bind(_fieldABop, SysExpr.New(_ctorOfB))), stateParamExpr); return(funcExpr); }