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,