Пример #1
0
        public static void Main()
        {
            //ulong? i = null;
            //object t = i;
            //Console.WriteLine(t.GetType());
            //Console.WriteLine(i.Value);

            ulong? i   = null;
            string str = null;
            object t1  = str;

            //Console.WriteLine(model.ValueProperty.Value);

            ENatasha.Initialize();



            //PropertyClass model = new PropertyClass();
            //model.ValueProperty = ulong.MaxValue;
            //model.RefProperty = "Test";
            //PropertyClass.StaticRefProeprty = "Static";
            //PropertyClass.StaticValueProperty = ulong.MinValue;
            //Delegate test = EHandler.CreateMethod<PropertyClass>((il) =>
            //{
            //    //EModel modelHandler = EModel.CreateModelFromObject(model);
            //    EModel modelHandler = EModel.CreateModel<PropertyClass>().UseDefaultConstructor();
            //    modelHandler.Set("<StaticValueProperty>k__BackingField", ulong.MaxValue);
            //    //modelHandler.Set("StaticValueProperty", ulong.MinValue);
            //    //modelHandler.Set("RefProperty", "1");
            //    //modelHandler.Set("RefProperty", modelHandler.DLoad("RefProperty").Operator + modelHandler.DLoad("StaticRefProeprty").DelayAction);
            //    modelHandler.Load();
            //}).Compile();
            //Func<PropertyClass> action = (Func<PropertyClass>)test;
            //PropertyClass result = action();


            //T2();
            //T<ulong?>();
            //T<string>();



            ClassWithNullableModel model = new ClassWithNullableModel();

            model.ValueProperty = 11111;
            model.ValueField    = 100;
            model.ValueProperty = null;
            ClassWithNullableModel.StaticValueField    = null;
            ClassWithNullableModel.StaticValueProperty = 200;
            Delegate test = EHandler.CreateMethod <ulong?>((il) =>
            {
                EModel modelHandler = EModel.CreateModel <ClassWithNullableModel>().UseDefaultConstructor();

                modelHandler.Set("ValueProperty", (ulong)1);
                modelHandler.Load("PrivateProperty");
                //modelHandler.Set("ValueProperty", modelHandler.DLoad("PrivateProperty").DLoad("Value").Operator + modelHandler.DLoad("StaticValueProperty").DLoad("Value").Operator);
                //EMethod.Load(typeof(Console)).ExecuteMethod<ulong?>("WriteLine", modelHandler.DLoad("PrivateProperty").DLoad("Value").DelayAction);
                // modelHandler.Set("ValueProperty", modelHandler.DLoad("PrivateProperty").DLoad("Value").Operator + modelHandler.DLoad("StaticValueProperty").DLoad("Value").Operator);
                //modelHandler.Set("StaticValueProperty", modelHandler.DLoad("ValueProperty").DLoad("Value").Operator + modelHandler.DLoad("StaticValueProperty").DLoad("Value").Operator);
                // modelHandler.Set("ValueField", modelHandler.DLoad("StaticValueProperty").DLoad("Value").Operator + modelHandler.DLoad("ValueField").DLoad("Value").Operator);
                //modelHandler.Load();
            }).Compile();
            Func <ulong?> action = (Func <ulong?>)test;
            //ClassWithNullableModel result = action();
            ulong? obj  = action();
            object obj1 = typeof(ClassWithNullableModel).GetProperty("PrivateProperty", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).GetValue(model);

            //ulong? a = (ulong?)obj1;



            DebugHelper.Close();
            Console.ReadKey();
        }