public static void TestComplexClone() { TestClass testModel = new TestClass(); testModel.Name = "X"; testModel.Age = 10; TestStruct nestingStruct = new TestStruct(); nestingStruct.Age = 101; nestingStruct.Name = "CX"; TestInterfaceModel interfaceModel = new TestInterfaceModel(); interfaceModel.Shut = true; testModel.PInterface = interfaceModel; testModel.FieldNext = nestingStruct; testModel.PropertyNext1 = nestingStruct; Delegate ShowDelegate = EHandler.CreateMethod <TestClass>((il) => { EMethod method = typeof(Console); EModel classModel = EModel.CreateModelFromObject(testModel); classModel.ALoad("PrivatePName").GetAttributeModel("Attribute1").LoadValue("Name"); method.ExecuteMethod <string>("WriteLine"); classModel.Load(); }).Compile(); TestClass Result = ((Func <TestClass>)ShowDelegate)(); Console.WriteLine(Result.Name); Console.WriteLine(Result.FieldNext.Name); Console.WriteLine(Result.FieldNext.Age); Console.WriteLine(Result.PropertyNext1.Name); Console.WriteLine(Result.PropertyNext1.Age); Console.WriteLine(Result.PInterface.Shut); }