如何获取.Net类型

时间:2016-04-13 09:28:11

标签: .net reflection xml-comments

我有一个使用.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)"

0 个答案:

没有答案