Exemple #1
0
        static void Main(string[] args)
        {
            dynamic person = new ExpandoObject();

            person.Name = "Test";
            person.Age = 30;
            person.Address = "TestAddress";

            // print the members
            PrintMembers(person);

            // remove a member
            (person as IDictionary<string, object>).Remove("Address");

            Console.WriteLine();

            PrintMembers(person);

            // cast expando object to person wil throw exception
            //Person realPerson = person;

            //Console.WriteLine("I'm the real person");
            //Console.WriteLine(string.Format("{0} : {1}", "Name", realPerson.Name));

            dynamic person2 = new { Name = "Test1", Age = 100, Address = "Somewhere" };

            Console.WriteLine();

            PrintMembers(person2);

            // test method
            person.Talk = (Action)(() => Console.WriteLine("I can talk"));

            person.Talk();

            // test function
            person.CalculateNumber = (Func<int, int, int>)((fist, second) => fist + second);

            Console.WriteLine(string.Format("I can calculate numbers : {0}", person.CalculateNumber(10, 10)));

            Console.ReadLine();
        }