Пример #1
0
        public static void Main()
        {
            WriteHeading(".NET version");
            Console.WriteLine(Environment.Version);

            RuntimeTypeModel orderModel = TypeModel.Create();

            orderModel.Add(typeof(OrderHeader), true);
            orderModel.Add(typeof(OrderDetail), true);
            orderModel.Compile("OrderSerializer", "OrderSerializer.dll");

            RuntimeTypeModel model = BuildMeta();

            SampleDto.Customer cust1 = new SampleDto.Customer();
            CustomerStruct     cust2 = new CustomerStruct();

            cust2.Id   = cust1.Id = 123;
            cust2.Name = cust1.Name = "Fred";
#if !FX11
            cust1.HasValue = cust2.HasValue = true;
            cust1.HowMuch  = cust2.HowMuch = 0.123;
#endif
            WriteCustomer(model, "Runtime - class", cust1);
            WriteCustomer(model, "Runtime - struct", cust2);

#if FEAT_COMPILER && !FX11
            model.CompileInPlace();
            WriteCustomer(model, "InPlace- class", cust1);
            WriteCustomer(model, "InPlace - struct", cust2);
#endif
#if FEAT_COMPILER
            TypeModel compiled = model.Compile("CustomerModel", "CustomerModel.dll");
            //PEVerify.Verify("CustomerModel.dll");
            compiled = model.Compile("CustomerModel", "CustomerModel.dll");
            WriteCustomer(compiled, "Compiled - class", cust2);
            WriteCustomer(compiled, "Compiled - struct", cust2);

            /*
             * CustomerModel serializer = new CustomerModel();
             * using (MemoryStream ms = new MemoryStream())
             * {
             *  Customer cust = new Customer();
             *  cust.Id = 123;
             *  cust.Name = "Fred";
             *  serializer.Serialize(ms, cust);
             *  ms.Position = 0;
             *  Customer clone = (Customer)serializer.Deserialize(ms, null, typeof(Customer));
             *  Console.WriteLine(clone.Id);
             *  Console.WriteLine(clone.Name);
             * }
             */
#endif
        }
Пример #2
0
        public static void Main()
        {
            
            WriteHeading(".NET version");
            Console.WriteLine(Environment.Version);

            RuntimeTypeModel orderModel = TypeModel.Create();
            orderModel.Add(typeof(OrderHeader), true);
            orderModel.Add(typeof(OrderDetail), true);
            orderModel.Compile("OrderSerializer", "OrderSerializer.dll");

            RuntimeTypeModel model = BuildMeta();
            Customer cust1 = new Customer();
            CustomerStruct cust2 = new CustomerStruct();
            cust2.Id = cust1.Id = 123;
            cust2.Name = cust1.Name = "Fred";
#if !FX11
            cust1.HasValue = cust2.HasValue = true;
            cust1.HowMuch = cust2.HowMuch = 0.123;
#endif
            WriteCustomer(model, "Runtime - class", cust1);
            WriteCustomer(model, "Runtime - struct", cust2);

#if FEAT_COMPILER && !FX11
            model.CompileInPlace();
            WriteCustomer(model, "InPlace- class", cust1);
            WriteCustomer(model, "InPlace - struct", cust2);
#endif
#if FEAT_COMPILER

           TypeModel compiled = model.Compile("CustomerModel", "CustomerModel.dll");
           //PEVerify.Verify("CustomerModel.dll");
           compiled = model.Compile("CustomerModel", "CustomerModel.dll");
           WriteCustomer(compiled, "Compiled - class", cust2);
           WriteCustomer(compiled, "Compiled - struct", cust2);
            /*
            CustomerModel serializer = new CustomerModel();
            using (MemoryStream ms = new MemoryStream())
            {
                Customer cust = new Customer();
                cust.Id = 123;
                cust.Name = "Fred";
                serializer.Serialize(ms, cust);
                ms.Position = 0;
                Customer clone = (Customer)serializer.Deserialize(ms, null, typeof(Customer));
                Console.WriteLine(clone.Id);
                Console.WriteLine(clone.Name);
            }
             */


#endif
        }