[英]C# XML documentation '<include>' tag not appearing in intellisense?
我在 Visual Studio 中開發了 C# class 庫,並且我一直在使用 XML 文檔注釋,主要用於與 Intellisense 的集成。 但是,大部分評論變得非常混亂,所以現在我正在努力使用<include>
標記和外部 XML 文檔來減少混亂。
我的問題是,當使用<include>
標記時,Intellisense 似乎沒有更新信息,沒有顯示我分配給我的某些類和方法的任何<summary>
和<param>
標記。
例如,我可以記錄一個 class 'Test',如下所示:
/// <include file="docs.xml" path='extradoc/class[@name="Test"]/*' />
class Test { string foo = "bar"; }
並有 docs.xml:
<?xml version="1.0" encoding="utf-8" ?>
<extradoc>
<class name="Test">
<summary>
Contains some Foo.
</summary>
</class>
</extradoc>
並在構建 output 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>
唯一的問題是,盡我所能,在附加我的代碼時,此文檔不會出現在智能感知框中。 我缺少一些 Visual Studio 配置設置嗎? 我已經搜索了 msn 文檔,但無濟於事。
我的問題是,當使用標簽 Intellisense 似乎沒有更新信息時,不顯示我分配給我的某些類和方法的任何 和 標簽。
1.避免您的問題是在當前項目A中無法在Intellisense中看到summary
。
您可以從本文檔中獲得幫助,該技術用於提供更好的閱讀體驗。 因此,假設您在當前項目A
中有Test
class ,當您在 VS 代碼編輯器中看到內容時,您會看到如下內容:
您將不會再看到項目 A 中的豐富評論,因為它們已被移至docs.xml
,這是預期的行為。
2.如果您的意思是當您創建一個新項目 B(或將程序集共享給其他開發人員)時,Intellisense 無法識別您的測試 class。
兩個可能的原因:
1.The output xx.dll and xx.xml from project A are not in the same folder, so when you reference that xx.dll in your new project, Intellisense won't display the documentation comments.
2.我猜你的docs.xml
文件有問題。 (我在docs.xml中找不到任何官方文檔表明該技術支持用戶定義的節點,如extradoc
和class
,我使用這兩個節點並且Intellisense不起作用,將它們更改為正常的docs
和members
后,它可以工作現在)
嘗試使用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>
和
/// <include file="docs.xml" path='docs/members[@name="MyTests"]/Test/*' />
public class Test { }
我建議您使用公共 class 進行測試...之后創建一個新項目並引用該 xx.dll,當調用Test
class 時,您可以看到摘要:
如果我們 F12 我們可以看到詳細的評論:
希望能幫助到你:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.