コード例 #1
0
        public void PropertyAsIndexerTest()
        {
            // Set standard properties
            var ex = new ExpandoInstance {
                Name = "Rick", Entered = DateTime.Now
            };

            Assert.Equal(ex.Name, ex["Name"]);
            Assert.Equal(ex.Entered, ex["Entered"]);
        }
コード例 #2
0
        public void DynamicAccessToPropertyTest()
        {
            // Set standard properties
            var ex = new ExpandoInstance {
                Name = "Rick", Entered = DateTime.Now
            };

            // turn into dynamic
            dynamic exd = ex;

            // Dynamic can access
            Assert.Equal(ex.Name, exd.Name);
            Assert.Equal(ex.Entered, exd.Entered);
        }
コード例 #3
0
        public void AddAndReadDynamicIndexersTest()
        {
            var ex = new ExpandoInstance {
                Name = "Rick", Entered = DateTime.Now
            };

            const string address = "32 Kaiea";

            ex["Address"]   = address;
            ex["Contacted"] = true;

            dynamic exd = ex;

            Assert.Equal(exd.Address, ex["Address"]);
            Assert.Equal(exd.Contacted, true);
        }
コード例 #4
0
        public void MixInObjectInstanceTest()
        {
            // Create expando an mix-in second objectInstanceTest
            var ex = new ExpandoInstance(new Address())
            {
                Name = "Rick", Entered = DateTime.Now
            };

            // create dynamic
            dynamic exd = ex;

            // values should show Addresses initialized values (not null)
            Console.WriteLine(exd.FullAddress);
            Console.WriteLine(exd.Email);
            Console.WriteLine(exd.Phone);
        }
コード例 #5
0
        public void IterateOverDynamicPropertiesTest()
        {
            var ex = new ExpandoInstance {
                Name = "Rick", Entered = DateTime.Now
            };

            dynamic exd = ex;

            exd.Company  = "West Wind";
            exd.Accesses = 10;

            // Dictionary pseudo implementation
            ex["Count"] = 10;
            ex["Type"]  = "NEWAPP";

            // Dictionary Count - 2 dynamic props added
            Assert.True(ex.Properties.Count == 4);

            // iterate over all properties
            foreach (KeyValuePair <string, object> prop in exd.GetProperties(true))
            {
                _testOutputHelper.WriteLine(prop.Key + " " + prop.Value);
            }
        }