public void Test2() { TestClass tc = (TestClass)TypeAccessor.CreateInstance(typeof(TestClass)); ITestInterface ti = (ITestInterface)tc; INullable tn = (INullable)tc; int n = 10; object o = new object(); Assert.AreEqual(10, ti.Test1(ref n)); Assert.AreSame(o, ti.Test2(ref o)); Assert.AreEqual(15, ti.Test3(null)); Assert.AreEqual(20, ti.Test4(0)); Assert.AreEqual(35, ti.Test5); Assert.AreEqual(40, ti.Test6); Assert.That(tn.IsNull, Is.True); }