我有一个使用.Net的XML文档的API项目。这会导致MyApp.dll
获得包含所有代码注释的MyApp.xml
文件,如下所示:
<?xml version="1.0"?>
<doc>
<assembly>
<name>MyApp</name>
</assembly>
<members>
<member name="T:MyApp.MyNamespace.MyClass">
<summary>Description of class</summary>
</member>
<member name="M:MyApp.MyNamespace.MyClass.MyGenericMethod``1(``0)">
<summary>Description of method</summary>
<typeparam name="T">Description of generic type</typeparam>
<param name="paramName">Description of parameter.</param>
<returns>Description of what this returns.</returns>
</member>
...
</members>
</doc>
我有typeof(MyClass)
,我想从中提取所有这些文档。我知道我可以使用SandCastle来构建外部.CHM帮助,但这需要成为使用API的应用程序的一部分。
我希望能够使用XPath $"//member[@name='key']"
来获取文档文件中的相关XmlNode
。
查找typeof(MyClass)
甚至使用typeof(MyClass).GetMembers()
来获取成员相当容易,但似乎并不是一个简单的方法来获取名称XML文档。对于某种类型,我可以使用$"T:{typeof(MyClass).FullName}"
,但对于MemberInfo
,这是非常复杂的,尤其是对于泛型。每个参数must be included in the lookup key。
我可以阅读MemberInfo.MemberType
并解析所有通用和常规参数,但这似乎是很多工作.Net必须已经在构建XML文件。
所以,我MemberInfo
MyGenericMethod
- 我如何从中获得"M:MyApp.MyNamespace.MyClass.MyGenericMethod``1(``0)"
?