コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }