我很好奇为什么在以下情况下我会收到编译器警告。
/// <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;构建以便查看警告。
答案 0 :(得分:2)
如果B继承自A,编译器在生成文档时是否能够在没有指定cref中的父类的情况下看到该方法?
你会这么认为,但事实并非如此。 XMLDoc解析器需要限定将方法放入其所属类的正确范围内。如果该方法是同一个类的一部分(即,不是从基类派生的),则可以不进行限定,否则就需要它。