public static ExpressionInfo <Func <object[], object> > CreateComplexExpressionInfo() { var stateParamExpr = Expression.Parameter(typeof(object[])); var expr = ExpressionInfo.Lambda <Func <object[], object> >( ExpressionInfo.MemberInit( ExpressionInfo.New(_ctorOfA, ExpressionInfo.New(_ctorOfB), ExpressionInfo.Convert( ExpressionInfo.ArrayIndex(stateParamExpr, ExpressionInfo.Constant(11)), typeof(string)), ExpressionInfo.NewArrayInit(typeof(ID[]), ExpressionInfo.New(_ctorOfD1), ExpressionInfo.New(_ctorOfD2))), ExpressionInfo.Bind(_propAProp, ExpressionInfo.New(_ctorOfP, ExpressionInfo.New(_ctorOfB))), ExpressionInfo.Bind(_fieldABop, ExpressionInfo.New(_ctorOfB))), stateParamExpr); return(expr); }