codeEntityReference 对 Sandcastle developerHowToDocument 方法的引用

codeEntityReference to method on a Sandcastle developerHowToDocument

我正在尝试使用 <codeEntityReference> MAML 元素为自定义扩展方法创建 link,一旦我构建了文档,我将获得整个 <codeEntityReference> 标签内容link 到整个方法。

该方法的示例是:

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

<codeEntityReference> 看起来像 <codeEntityReference>M:SampleProject.ExtensionMethods.SomeExtension{T}(TObject)</codeEntityReference>

以上 link 将产生类似 M:SampleProject.ExtensionMethods.SomeExtension{T}(T).

的输出

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

warning : BuildAssembler : warning : ResolveReferenceLinksComponent: [52e40f26-3dfe-47e0-adf1-09233e98f42e] Unknown reference link target 'M:SampleProject.ExtensionMethods.SomeExtension{T}(T)'

我错过了什么吗?那里出了什么问题?我尝试将方法参考提供为:

M:SampleProject.ExtensionMethods.SomeExtension`1

...但并没有解决问题。

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

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

<codeEntityReference>
     M:SampleProject.ExtensionMethods.SomeExtension``1(``0)
</codeEntityReference>

更好的方法是使用实​​体引用工具! 您可以在 visual studio.

中的查看->其他 Windows 菜单下找到它

打开后,在“类型”组合框中 select "Code Entities" 并搜索您想要代码参考的 method/property/class。它将显示您的代码实体参考工作所需的内容。