Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#XML文档'&书信电报;包括>';标签没有出现在intellisense中?_C#_Xml_Visual Studio_Comments_Intellisense - Fatal编程技术网

C#XML文档'&书信电报;包括>';标签没有出现在intellisense中?

C#XML文档'&书信电报;包括>';标签没有出现在intellisense中?,c#,xml,visual-studio,comments,intellisense,C#,Xml,Visual Studio,Comments,Intellisense,我在VisualStudio中开发了一个C#类库,我一直在使用XML文档注释,主要是为了与Intellisense集成。然而,大量的注释已经变得非常混乱,所以现在我正努力使用标记和外部XML文档来减少混乱 我的问题是,当使用标记时,Intellisense似乎不会随信息更新,不会显示我分配给某些类和方法的和标记 例如,我可以记录一个类“测试”,如图所示: /// <include file="docs.xml" path='extradoc/class[@name="Test"]/*' /

我在VisualStudio中开发了一个C#类库,我一直在使用XML文档注释,主要是为了与Intellisense集成。然而,大量的注释已经变得非常混乱,所以现在我正努力使用
标记和外部XML文档来减少混乱

我的问题是,当使用
标记时,Intellisense似乎不会随信息更新,不会显示我分配给某些类和方法的
标记

例如,我可以记录一个类“测试”,如图所示:

/// <include file="docs.xml" path='extradoc/class[@name="Test"]/*' />
        class Test { string foo = "bar"; }
//
类测试{string foo=“bar”;}
并拥有docs.xml:

<?xml version="1.0" encoding="utf-8" ?>
<extradoc>
  <class name="Test">
    <summary>
      Contains some Foo.
    </summary>
  </class>
</extradoc>

包含一些Foo。
生成后,输出XML将正确填充:

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Example Program</name>
    </assembly>
    <members>
        <member name="T:Example_Program.Program.Test">
            <summary>
      Contains some Foo.
    </summary>
        </member>
    </members>
</doc>

示例程序
包含一些Foo。
唯一的问题是,尽管我可能会尝试,但在附加代码时,此文档不会出现在intellisense框中。是否缺少某些Visual Studio配置设置?我浏览了msn文档,但没有结果

我的问题是,当使用标签Intellisense时 不使用信息更新,不显示任何和 我已经分配给我的一些类和方法的标记

1.避免您的问题无法在当前项目A的Intellisense中查看
摘要。

您可以从中获得帮助,这项技术用于提供更好的阅读体验。因此,假设您在当前的priject
A
中有
Test
类,当您在VS代码编辑器中看到内容时,您将看到如下内容:

您不会再看到项目A中的丰富注释,这是预期的行为,因为它们已被移动到
docs.xml

2.如果您是指在创建新项目B(或将程序集共享给其他开发人员)时,Intellisense无法识别您的测试类。

两个可能的原因:

1.项目A的输出xx.dll和xx.xml不在同一文件夹中,因此当您在新项目中引用该xx.dll时,Intellisense不会显示文档注释

2.我猜您的
docs.xml
文件有问题。(我在docs.xml中找不到任何官方文件表明该技术支持用户定义的节点,如
extradoc
class
,我使用了这两个节点,Intellisense没有工作,在将它们更改为普通
docs
成员
后,它现在可以工作了)

尝试使用
docs.xml
include
,方法如下:

<?xml version="1.0" encoding="utf-8" ?>
<docs>
  <members name="MyTests">
    <Test>
      <summary>
        This class is public, but do nothing
      </summary>
      <remarks>
        Just write something here to indicate this is remarks.
      </remarks>
    </Test>
  </members>
</docs>

这门课是公开的,但什么也不做
在这里写点东西,表明这是评论。

//
公共类测试{}
我建议你使用一个公共类来测试。。。之后,创建一个新项目并引用该xx.dll,当调用
Test
类时,您可以看到摘要:

如果我们选择F12,我们可以看到详细的评论:


希望有帮助:)

不确定这是否有帮助-但通常情况下,重新启动VS和删除用户选项文件在过去对我有帮助,尽管在我的情况下这只是一般的intellisense。对
有点困惑,在添加代码时,此文档不会出现在intellisense框中,您的意思是,当您在另一个项目中引用此程序集时,该项目中的intellisense无法识别您程序集的文档吗?预期的行为是,您将不再在项目A中看到丰富的注释,因为它们已移动到docs.xml。这是一个相当愚蠢的设计,希望很快就会改变:
/// <include file="docs.xml" path='docs/members[@name="MyTests"]/Test/*' />
    public class Test { }