codeEntityReference to Sandcastle developerHowToDocument上的方法

Mat*_*zer 3 c# documentation sandcastle maml shfb

我正在尝试使用<codeEntityReference>MAML元素创建指向自定义扩展方法的链接,一旦我构建了文档,我就会得到整个<codeEntityReference>标记内容而不是整个方法的链接.

该方法的一个示例是:

namespace SampleProject 
{
    public static class ExtensionMethods
    {
         public static bool SomeExtension<T>(this T some) => true;
    }
}
Run Code Online (Sandbox Code Playgroud)

<codeEntityReference>将如下<codeEntityReference>M:SampleProject.ExtensionMethods.SomeExtension{T}(TObject)</codeEntityReference>

上面的链接将产生类似M的输出:SampleProject.ExtensionMethods.SomeExtension {T}(T).

实际上,我在文档构建过程中遇到以下错误:

警告:BuildAssembler:警告:ResolveReferenceLinksComponent:[52e40f26-3dfe-47e0-adf1-09233e98f42e]未知的引用链接目标'M:SampleProject.ExtensionMethods.SomeExtension {T}(T)'

我错过了什么吗?那有什么不对?我试图提供方法参考:

M:SampleProject.ExtensionMethods.SomeExtension`1
Run Code Online (Sandbox Code Playgroud)

......但它没有解决问题.

Mat*_*zer 5

最后,我解决了检查 C# 编译器如何为程序集生成 XML 文档文件的问题。

例如,<codeEntityReference>我的示例扩展方法是:

<codeEntityReference>
     M:SampleProject.ExtensionMethods.SomeExtension``1(``0)
</codeEntityReference>
Run Code Online (Sandbox Code Playgroud)


Fri*_*ale 5

更好的方法是使用实​​体引用工具!您可以在visual studio的View-> Other Windows菜单下找到它.

打开它后,在Type组合框中选择"Code Entities",然后搜索您想要代码参考的方法/属性/类.它将显示您的代码实体参考所需的工作.