public void TestAccess() { Assert.AreEqual("Value", DynamicUtils.Access(new Hashtable() { { "MyKey", "Value" } }, "MyKey")); Assert.AreEqual(10, DynamicUtils.Access(new ClassTestAccess(), "SampleField")); Assert.AreEqual(20, DynamicUtils.Access(new ClassTestAccess(), "SampleProperty")); Assert.AreEqual(30, DynamicUtils.Access(new ClassTestAccess(), "SampleMethod")); Assert.AreEqual(null, DynamicUtils.Access(null, "Test")); Assert.AreEqual(null, DynamicUtils.Access(null, null)); Assert.AreEqual(null, DynamicUtils.Access(10, "Test")); Assert.AreEqual(null, DynamicUtils.Access("Test", "Test")); Assert.AreEqual(2, DynamicUtils.Access(new int[] { 0, 1, 2, 3, 4 }, 2)); Assert.AreEqual(2, DynamicUtils.Access(new List <int>(new int[] { 0, 1, 2, 3, 4 }), 2)); }