C# 从ducumentation获取要在工具提示中显示的方法或属性xml备注
目前我正在做一个模拟器。我在VisualStudio中使用xml标记对所有代码进行注释。我想使用某些方法/属性的摘要或备注标记作为内容用于其他目的(如工具提示文本) 是否可以引用xml文档文本C# 从ducumentation获取要在工具提示中显示的方法或属性xml备注,c#,C#,目前我正在做一个模拟器。我在VisualStudio中使用xml标记对所有代码进行注释。我想使用某些方法/属性的摘要或备注标记作为内容用于其他目的(如工具提示文本) 是否可以引用xml文档文本 提前谢谢 讨论了这么多次,但由于某种原因,很难找到 基本上有两种选择: 1) 使用Roslyn。这是你想要的,如果你有权访问源。关于这个话题有一个很好的答案: 2) 自己解析xml文档。与二进制文件一起,您可以找到包含所有类型描述的.xml文件。在开始生成之前,您需要打开生成-转到解决方案属性->构建并指
提前谢谢 讨论了这么多次,但由于某种原因,很难找到 基本上有两种选择: 1) 使用Roslyn。这是你想要的,如果你有权访问源。关于这个话题有一个很好的答案: 2) 自己解析xml文档。与二进制文件一起,您可以找到包含所有类型描述的
.xml
文件。在开始生成之前,您需要打开生成-转到解决方案属性->构建并指定XML文档文件
,如果您对其进行解析,则可以检索所需的任何信息。对于每个元素,都有一个单独的成员
标记。它具有属性name
,该属性定义了您正在查看的元素。指定的名称有一个前缀,用于定义元素的类型—类型(T:
)、属性(P:
)等。标记的内部包含所有必需的信息
以下是一个例子:
<member name="T:MyNameSpace.MyTuple`2">
<summary>The summary</summary>
<typeparam name="TA">The first tuple type.</typeparam>
<typeparam name="TB">The second tuple type.</typeparam>
</member>
它使用$assembly$
获取类型的全名,但是如果您已经知道了,并且不需要迭代所有类型,那么就不必拥有该程序集。
此外,您还需要考虑泛型类型名称,这些名称最后有`[number of typeparams]。这个powershell示例没有做到这一点。您的意思是如何从C#源代码中读取XML文档??
function Get-Type-Xml-Description($typeName) {
$type = $assembly.GetTypes() | Where-Object { $_.Name -eq $typeName } | Select -First 1
if ($type -eq $null){
return $null
}
$tName = $type.FullName
$path = "T:"+$tName
$node = $xmlDocument.SelectSingleNode("//member[@name = '" + $path + "']")
return [Regex]::Replace($node["summary"].InnerText.Trim(), "\s+", " ")
}