C#XML文档编译器警告

时间:2010-06-07 18:17:27

标签: c# xml documentation warnings

我很好奇为什么在以下情况下我会收到编译器警告。

/// <summary>This is class A
/// </summary>
public class A
{
    /// <summary>This is the documentation for Method A
    /// </summary>
    public void MethodA()
    {
        //Do something
    }
}

/// <summary>This is class B
/// </summary>
public class B : A
{
    /// <summary>This does something that I want to
    /// reference <see cref="MethodA"/>
    /// </summary>
    public void MethodB()
    {
        //Do something
    }

}

警告声明“对'B.MethodB()'的XML注释具有无法解析的cref属性'MethodA'。”如果B继承自A,编译器在生成文档时是否能够看到该方法而不指定cref中的父类?如果我将cref更改为cref="A.MethodA()"它可以正常工作,但似乎这是不必要的并且是一件痛苦的事情,特别是如果我必须上升多个级别。

作为对测试此内容的任何人的说明,您必须确保在属性中选中“XML文档文件” - &gt;构建以便查看警告。

1 个答案:

答案 0 :(得分:2)

  

如果B继承自A,编译器在生成文档时是否能够在没有指定cref中的父类的情况下看到该方法?

你会这么认为,但事实并非如此。 XMLDoc解析器需要限定将方法放入其所属类的正确范围内。如果该方法是同一个类的一部分(即,不是从基类派生的),则可以不进行限定,否则就需要它。