diff --git a/DocsByReflection.UnitTests.Stubs/GenericInterface.cs b/DocsByReflection.UnitTests.Stubs/GenericInterface.cs new file mode 100644 index 0000000..6b5f772 --- /dev/null +++ b/DocsByReflection.UnitTests.Stubs/GenericInterface.cs @@ -0,0 +1,10 @@ +namespace DocsByReflection.UnitTests.Stubs +{ + /// + /// Summary of GenericInterface + /// + /// + public interface GenericInterface + { + } +} \ No newline at end of file diff --git a/DocsByReflection.UnitTests/DocsServiceTest.cs b/DocsByReflection.UnitTests/DocsServiceTest.cs index d5b0390..c8dc1d1 100644 --- a/DocsByReflection.UnitTests/DocsServiceTest.cs +++ b/DocsByReflection.UnitTests/DocsServiceTest.cs @@ -12,12 +12,19 @@ public void GetXmlFromType_Class_XmlElement() var actual = DocsService.GetXmlFromType(typeof(Stub)); Assert.AreEqual("Stub class.", actual.SelectSingleNode("summary").InnerText.Trim()); } - + [Test] public void GetXmlFromAssembly_Assembly_XmlElement() { var actual = DocsService.GetXmlFromAssembly(typeof(Stub).Assembly); StringAssert.EndsWith("DocsByReflection.UnitTests.Stubs", actual.SelectSingleNode("//name").InnerText); } + + [Test] + public void GetXmlFromType_GenericInterface_XmlElement() + { + var actual = DocsService.GetXmlFromType(typeof(GenericInterface<>)); + Assert.AreEqual("Summary of GenericInterface", actual.SelectSingleNode("summary").InnerText.Trim()); + } } } diff --git a/DocsByReflection/DocsTypeService.cs b/DocsByReflection/DocsTypeService.cs index 2a1b6df..5e0dbef 100644 --- a/DocsByReflection/DocsTypeService.cs +++ b/DocsByReflection/DocsTypeService.cs @@ -26,7 +26,7 @@ public static string GetTypeFullNameForXmlDoc(Type type, bool isOut = false, boo Type[] args = type.GetGenericArguments(); string fullTypeName = string.Empty; string typeNamespace = type.Namespace == null ? "" : string.Format("{0}.", type.Namespace); - if (type.MemberType == MemberTypes.TypeInfo && (type.IsGenericType || args.Length > 0) && (!type.IsClass || isMethodParameter)) + if (type.MemberType == MemberTypes.TypeInfo && (type.IsGenericType || args.Length > 0) && (!(type.IsClass || type.IsInterface) || isMethodParameter)) { //2016-10-06 by Jeffrey, support multiple generic arguments return String.Format(CultureInfo.InvariantCulture,