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(); }