public void TestGetTypeNameFromArrayAndGeneric() { var testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("int[]"); Assert.AreEqual("int", testResult); testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("System.Collections.Generic.List`1[System.String]"); Assert.AreEqual("System.String", testResult); testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("System.Tuple`2[System.Int32,System.String]"); Assert.AreEqual("System.Int32", testResult); testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("System.Tuple`2[System.Collections.Generic.List`1[SomeNamespace.AType],System.String]"); Assert.AreEqual("SomeNamespace.AType", testResult); //test C# style testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric( "System.Collections.Generic.List<System.String>", "<"); Assert.AreEqual("System.String", testResult); testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("System.Tuple<System.Int32, System.String>", "<"); Assert.AreEqual("System.Int32", testResult); testResult = NfReflect.GetLastTypeNameFromArrayAndGeneric("System.Tuple<System.Collections.Generic.List<SomeNamespace.AType>,System.String>", "<"); Assert.AreEqual("SomeNamespace.AType", testResult); var testResults = NfReflect.GetTypeNamesFromGeneric( "System.Tuple`3[System.Collections.Generic.List`1[System.String], System.String, System.Tuple`2[System.Int32, System.String]]"); Console.WriteLine(string.Join(" | ", testResults)); }