C# 从ducumentation获取要在工具提示中显示的方法或属性xml备注

C# 从ducumentation获取要在工具提示中显示的方法或属性xml备注,c#,C#,目前我正在做一个模拟器。我在VisualStudio中使用xml标记对所有代码进行注释。我想使用某些方法/属性的摘要或备注标记作为内容用于其他目的(如工具提示文本) 是否可以引用xml文档文本 提前谢谢 讨论了这么多次,但由于某种原因,很难找到 基本上有两种选择: 1) 使用Roslyn。这是你想要的,如果你有权访问源。关于这个话题有一个很好的答案: 2) 自己解析xml文档。与二进制文件一起,您可以找到包含所有类型描述的.xml文件。在开始生成之前,您需要打开生成-转到解决方案属性->构建并指

目前我正在做一个模拟器。我在VisualStudio中使用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+", " ")
}