3

我正在尝试使用<codeEntityReference>MAML 元素创建指向自定义扩展方法的链接,并且在构建文档后,我将获取整个<codeEntityReference>标记内容,而不是指向整个方法的链接。

该方法的一个示例是:

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

<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

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

4

2 回答 2

5

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

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

<codeEntityReference>
     M:SampleProject.ExtensionMethods.SomeExtension``1(``0)
</codeEntityReference>
于 2015-11-10T10:24:44.423 回答
5

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

打开后,在“类型”组合框中选择“代码实体”,然后搜索您想要代码参考的方法/属性/类。它将显示代码实体引用工作所需的内容。

于 2016-11-10T20:00:16.033 回答