public void SimpleTest3()
        {
            var c6  = new Class6();
            var ic6 = c6.Wrap <IClass6>();

            Assert.AreEqual("hello", ic6.GenericMethod3 <string>("hello"));
        }
        public void SimpleTest()
        {
            var c6  = new Class6();
            var ic6 = c6.Wrap <IClass6>();

            Assert.AreEqual(typeof(string), ic6.GenericMethod <string>());
            Assert.AreEqual(typeof(int), ic6.GenericMethod <int>());
        }
        public void SimpleTest2()
        {
            var c6    = new Class6();
            var ic6   = c6.Wrap <IClass6>();
            var types = ic6.GenericMethod2 <string, Visibility>();

            Assert.AreEqual(typeof(string), types[0]);
            Assert.AreEqual(typeof(Visibility), types[1]);
        }
        public void RefTest()
        {
            var c6 = new Class6();

            Class6.FakeClass fake = new Class6.FakeClass()
            {
                Value = 10
            };
            var ic6    = c6.Wrap <IClass6>();
            var result = ic6.GenericMethodRef(ref fake);

            Assert.AreEqual(10, result.Value);
            Assert.AreEqual(11, fake.Value);
        }