Esempio n. 1
0
        public static Expression <Func <mDictionary> > NestedProperty(busMSSPerson aobjPerson)
        {
            var expectedType = typeof(mDictionary);
            var ctor         = Expression.New(expectedType);
            var local        = Expression.Parameter(expectedType, "obj");


            var KeyExpressionGetter = Expression.Call(local, expectedType.GetMethod("SetVal"), Expression.Constant("KeyName1"), Expression.Constant("ValName1"));


            var block = Expression.Block(
                new[] { local },
                Expression.Assign(local, ctor),
                KeyExpressionGetter,
                local
                );

            return(Expression.Lambda <Func <mDictionary> >(block));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            // var fn = Sample.BuildLambdaAndReturnDictionaryExpression();
            // mDictionary result = fn.Compile().DynamicInvoke() as mDictionary;


            var person = new busMSSPerson()
            {
                FirstName = "Sagitec",
                LastName  = "Solutions",
                PersonID  = 1,
                ibusPersonPrimaryPhone = new busPersonPrimaryPhone()
                {
                    icdoPersonPhone = new cdoPersonPhone()
                    {
                        phone_number = "12345678"
                    }
                },
                ibusPersonAlternatePhone = new busPersonPrimaryPhone()
                {
                    icdoPersonPhone = new cdoPersonPhone()
                    {
                        phone_number = "87654321"
                    }
                },
                iclbAddress = new Collection <busPersonAddress>()
                {
                    new busPersonAddress()
                    {
                        Address1 = "Address1Item1", Address2 = "Address2Item1", ContactPerson = new busMSSPerson()
                        {
                            FirstName = "sample name1", LastName = "Last Name1"
                        }
                    },
                    new busPersonAddress()
                    {
                        Address1 = "Address1Item2", Address2 = "Address2Item2", ContactPerson = new busMSSPerson()
                        {
                            FirstName = "sample name2", LastName = "Last Name2"
                        }
                    },
                    new busPersonAddress()
                    {
                        Address1 = "Address1Item3", Address2 = "Address2Item3", ContactPerson = new busMSSPerson()
                        {
                            FirstName = "sample name3", LastName = "Last Name3"
                        }
                    },
                    new busPersonAddress()
                    {
                        Address1 = "Address1Item4", Address2 = "Address2Item4", ContactPerson = new busMSSPerson()
                        {
                            FirstName = "sample name4", LastName = "Last Name4"
                        }
                    },
                    new busPersonAddress()
                    {
                        Address1 = "Address1Item5", Address2 = "Address2Item5", ContactPerson = new busMSSPerson()
                        {
                            FirstName = "sample name5", LastName = "Last Name5"
                        }
                    },
                }
            };

            //ParseXMLAndCreateFunction(person, "getcontactinfo.xml");


            //var result1 = Sample.PropertySette1() as IExpressionResult;
            ////var expr = result1.ToExpression();
            ////var result2compiled = expr.Compile();//this goes to cache
            ////var result2 = result2compiled.DynamicInvoke(person);
            //var result3 = result1.ToLambda<Func<busMSSPerson, mDictionary>>()(person);
            //var str2 = Newtonsoft.Json.JsonConvert.SerializeObject(result3);


            //var looptestresult = Sample.ForEachSample() as IExpressionResult;
            //var loopexpstr = looptestresult.ToString();
            //var loopexpr = looptestresult.ToExpression();
            //var loopresult2 = loopexpr.Compile().DynamicInvoke(person);
            //var str5 = Newtonsoft.Json.JsonConvert.SerializeObject(loopresult2, Formatting.Indented, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });

            new FilterProcessor().ParseFilterFiles(person);
            return;
            // ParseXMLAndCreateFunction(person, "newGetContactInfo.xml");
        }