public static void TestUniversalGenericThatUsesCanonicalGenericType() { { var t = TypeOf.PUG_UseCanonGenericTypeFromUniversalGenericClassType3.MakeGenericType(typeof(DerivedClass3), TypeOf.Double); ITest <DerivedClass3> b = (ITest <DerivedClass3>)Activator.CreateInstance(t); DerivedClass3 data = new DerivedClass3("abc"); Assert.AreEqual("DerivedClass3.abc", b.TestMethod(data).ToString()); } { var t = TypeOf.PUG_UseCanonGenericTypeFromUniversalGenericClassType5.MakeGenericType(typeof(MyStruct5), TypeOf.Double); ITest <MyStruct5> b = (ITest <MyStruct5>)Activator.CreateInstance(t); MyStruct5 data = new MyStruct5("123"); Assert.AreEqual("MyStruct5.123", b.TestMethod(data).ToString()); } { var t = TypeOf.PUG_UseCanonGenericTypeFromUniversalGenericClassType6.MakeGenericType(typeof(MyStruct6), TypeOf.Double); ITest <MyStruct6> b = (ITest <MyStruct6>)Activator.CreateInstance(t); MyStruct6 data = new MyStruct6("456"); Assert.AreEqual("MyStruct6.456", b.TestMethod(data).ToString()); } }
public object TestMethod(MyStruct6 t) { WrapperGeneric6 <MyStruct6, List <T> > wrapper = new WrapperGeneric6 <MyStruct6, List <T> >(); wrapper.value = t; return(wrapper.WrappedObject()); }