コード例 #1
0
        public void TestIndexers()
        {
            IDynamicIndexer members = DynamicIndexer.Create(typeof(ArrayList).GetProperty("Item"));
            Inventor        nikola  = (Inventor)members.GetValue(ieee.Members, new object[] { 0 });

            Assert.AreEqual(tesla, nikola);
            members.SetValue(ieee.Members, new object[] { 0 }, new Inventor("Ana Maria Seovic", new DateTime(2004, 8, 14), "Serbian"));
            Assert.AreEqual("Ana Maria Seovic", ((Inventor)members.GetValue(ieee.Members, 0)).Name);
            members.SetValue(ieee.Members, 1, tesla);
            Assert.AreEqual("Nikola Tesla", ((Inventor)members.GetValue(ieee.Members, 1)).Name);

            IDynamicIndexer officers = DynamicIndexer.Create(typeof(Hashtable).GetProperty("Item"));

            Assert.AreEqual(pupin, officers.GetValue(ieee.Officers, new object[] { "president" }));
            officers.SetValue(ieee.Officers, "president",
                              new Inventor("Aleksandar Seovic", new DateTime(1974, 8, 24), "Serbian"));
            Assert.AreEqual("Aleksandar Seovic", ((Inventor)officers.GetValue(ieee.Officers, "president")).Name);
        }