示例#1
0
        static void Main(string[] args)
        {
            /*
             * <?xml version="1.0" encoding="utf-8"?>
             * <Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
             * <EmployeeId>42</EmployeeId>
             * <FirstName>John</FirstName>
             * <LastName>Doe</LastName>
             * </Employee>
             */
            {
                var employee = new v1.Employee
                {
                    EmployeeId = 42,
                    FirstName  = "John",
                    LastName   = "Doe"
                };

                var path = Path.Combine(Path.GetTempPath(), "employee1.xml");
                Serializer <v1.Employee> .Serialize(employee, path);

                var result = Serializer <v1.Employee> .Deserialize(path);

                Console.WriteLine(File.ReadAllText(path));

                File.Delete(path);
            }

            /*
             * <?xml version="1.0" encoding="utf-8"?>
             * <employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="42">
             * <firstName>John</firstName>
             * <lastName>Doe</lastName>
             * </employee>
             */
            {
                var employee = new Employee
                {
                    EmployeeId = 42,
                    FirstName  = "John",
                    LastName   = "Doe"
                };

                var path = Path.Combine(Path.GetTempPath(), "employee1.xml");
                Serializer <Employee> .Serialize(employee, path);

                var result = Serializer <Employee> .Deserialize(path);

                Console.WriteLine(File.ReadAllText(path));

                File.Delete(path);
            }

            /*
             * <?xml version="1.0" encoding="utf-8"?>
             * <employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" id="42">
             * <firstName>John</firstName>
             * <lastName>Doe</lastName>
             * </employee>
             * <?xml version="1.0" encoding="utf-8"?>
             * <Department xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="102">
             * <Name>IT</Name>
             * </Department>
             */
            {
                var employee = new Employee
                {
                    EmployeeId = 42,
                    FirstName  = "John",
                    LastName   = "Doe"
                };

                var department = new Department
                {
                    Id   = 102,
                    Name = "IT"
                };

                var path = Path.Combine(Path.GetTempPath(), "employee2.xml");
                using (var wr = File.CreateText(path))
                {
                    Serializer <Employee> .Serialize(employee, wr);

                    wr.WriteLine();
                    Serializer <Department> .Serialize(department, wr);
                }

                Console.WriteLine(File.ReadAllText(path));

                File.Delete(path);
            }

            /*
             * <?xml version="1.0" encoding="utf-8"?>
             * <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1">
             * <Employee id="42">
             *  <firstName>John</firstName>
             *  <lastName>Doe</lastName>
             * </Employee>
             * <Department Id="102">
             *  <Name>IT</Name>
             * </Department>
             * </Data>
             */
            {
                var data = new Data()
                {
                    Version  = 1,
                    Employee = new Employee
                    {
                        EmployeeId = 42,
                        FirstName  = "John",
                        LastName   = "Doe"
                    },
                    Department = new Department
                    {
                        Id   = 102,
                        Name = "IT"
                    }
                };

                var path = Path.Combine(Path.GetTempPath(), "employee3.xml");
                using (var wr = File.CreateText(path))
                {
                    Serializer <Data> .Serialize(data, wr);
                }

                Console.WriteLine(File.ReadAllText(path));

                File.Delete(path);
            }

            /*
             * <?xml version="1.0" encoding="utf-8"?>
             * <Data Version="1">
             * <employee id="42">
             *  <firstName>John</firstName>
             *  <lastName>Doe</lastName>
             * </employee>
             * <Department Id="102">
             *  <Name>IT</Name>
             * </Department>
             * </Data>
             */
            {
                var employee = new Employee
                {
                    EmployeeId = 42,
                    FirstName  = "John",
                    LastName   = "Doe"
                };

                var department = new Department
                {
                    Id   = 102,
                    Name = "IT"
                };

                var path = Path.Combine(Path.GetTempPath(), "employee4.xml");

                var settings = new XmlWriterSettings
                {
                    Encoding = Encoding.UTF8,
                    Indent   = true
                };

                var namespaces = new XmlSerializerNamespaces();
                namespaces.Add(string.Empty, string.Empty);

                using (var wr = XmlWriter.Create(path, settings))
                {
                    wr.WriteStartDocument();
                    wr.WriteStartElement("Data");
                    wr.WriteStartAttribute("Version");
                    wr.WriteValue(1);
                    wr.WriteEndAttribute();

                    var employeeSerializer = new XmlSerializer(typeof(Employee));
                    employeeSerializer.Serialize(wr, employee, namespaces);

                    var depSerializer = new XmlSerializer(typeof(Department));
                    depSerializer.Serialize(wr, department, namespaces);

                    wr.WriteEndElement();
                    wr.WriteEndDocument();
                }

                Console.WriteLine(File.ReadAllText(path));

                var rdsettings = new XmlReaderSettings()
                {
                    IgnoreComments   = true,
                    IgnoreWhitespace = true
                };

                using (var rd = XmlReader.Create(path, rdsettings))
                {
                    string indent = string.Empty;
                    while (rd.Read())
                    {
                        switch (rd.NodeType)
                        {
                        case XmlNodeType.Element:
                            Console.Write($"{indent}{{ {rd.Name} : ");
                            indent = indent + "  ";
                            while (rd.MoveToNextAttribute())
                            {
                                Console.WriteLine();
                                Console.WriteLine($"{indent}{{ {rd.Name} : {rd.Value} }}");
                            }
                            break;

                        case XmlNodeType.Text:
                            Console.Write(rd.Value);
                            break;

                        case XmlNodeType.EndElement:
                            indent = indent.Remove(0, 2);
                            Console.WriteLine($"{indent}}}");
                            break;

                        default:
                            Console.WriteLine($"[{rd.Name} {rd.Value}]");
                            break;
                        }
                    }
                }

                File.Delete(path);
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            // classes

            {
                v1.Employee obj = new v1.Employee();
                obj.EmployeeId = 1;
                obj.FirstName  = "John";
                obj.LastName   = "Doe";
            }

            {
                v2.Employee obj = new v2.Employee(1);
                obj.FirstName = "John";
                obj.LastName  = "Doe";
            }

            {
                v1.Employee obj1 = new v1.Employee();
                obj1.EmployeeId = 1;

                v1.Employee obj2 = obj1;
                obj2.FirstName = "John"; // obj1.FirstName == "John"
                obj2.LastName  = "Doe";  // obj1.LastName == "Doe"
            }

            // constructors

            {
                v3.Employee obj = new v3.Employee(1, "John", "Doe");

                string fullName = obj.GetEmployeeName();

                Console.WriteLine("Employee ID is: {0}", obj.EmployeeId);
                Console.WriteLine("The full name of employee is: {0}", fullName);
            }

            {
                v1.Employee obj = new v1.Employee()
                {
                    EmployeeId = 1,
                    FirstName  = "John",
                    LastName   = "Doe"
                };
            }


            // properties
            {
                v5.Employee obj = new v5.Employee();
                obj.EmployeeId = 1;
                obj.FirstName  = "John";
                obj.LastName   = "Doe";

                Console.WriteLine($"{obj.EmployeeId} - {obj.LastName}, {obj.FirstName}");
            }

            {
                v11.Employee obj = new v11.Employee()
                {
                    FirstName = "John",
                    LastName  = "Doe"
                };

                Console.WriteLine($"{obj.EmployeeId} - {obj.LastName}, {obj.FirstName}");
            }

            {
                v13.Employee obj = new v13.Employee();
            }

            // indexers
            {
                v14.Employee obj = new v14.Employee()
                {
                    EmployeeId = 1,
                    FirstName  = "John",
                    LastName   = "Doe"
                };

                obj.Roles[1] = "Dev";
                obj.Roles[3] = "SA";

                for (int i = 1; i <= 3; ++i)
                {
                    try
                    {
                        Console.WriteLine($"Project {i}: role is {obj.Roles[i]}");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }

            // static
            {
                v16.Employee obj1 = v16.Employee.Create("John", "Doe");
                v16.Employee obj2 = v16.Employee.Create("Jane", "Doe");
                Console.WriteLine($"{obj1.EmployeeId} {obj1.FirstName}");
                Console.WriteLine($"{obj2.EmployeeId} {obj2.FirstName}");
            }

            {
                var lbs = MassConverters.KgToPound(42.5);
                var kgs = MassConverters.PoundToKg(180);
            }

            {
                v17.Employee obj1 = v17.Employee.Create("John", "Doe");
                v17.Employee obj2 = v17.Employee.Create("Jane", "Doe");
                Console.WriteLine($"{obj1.EmployeeId} {obj1.FirstName}");
                Console.WriteLine($"{obj2.EmployeeId} {obj2.FirstName}");
            }

            // ref params

            {
                int num1 = 10;
                int num2 = 20;

                Console.WriteLine($"Before swapping: num1={num1}, num2={num2}");
                Swap(ref num1, ref num2);
                Console.WriteLine($"After swapping:  num1={num1}, num2={num2}");
            }

            {
                v8.Employee e1   = new v8.Employee(1, "John", "Doe");
                Project     proj = new Project("Demo", e1);
                Console.WriteLine(proj);

                ref v8.Employee owner = ref proj.GetOwner();
                owner = new v8.Employee(2, "Jane", "Doe");
                Console.WriteLine(proj);
            }