c# xml 注释,cref 不能引用 base class 中定义的方法
c# xml comment, cref can't reference method defined in base class
在我的代码库中,我在基 class 中定义了一个方法,基 class 是继承的,但该方法尚未被覆盖。将来很可能会覆盖此方法以添加到基础实现中。
我的设置看起来有点像这样:
public abstract class BaseFoo
{
public virtual void Bar()
{
//default implementation
}
}
public class RealFoo : BaseFoo
{
//extra code, does *NOT YET* override Bar but might in the future
}
public class DependentClass
{
/// <summary>
/// Uses <see cref="RealFoo.Bar"/> to do some magic
/// </summary>
public void SomeMethod()
{
}
}
由于将来很可能会覆盖 Bar,因此我想在未来证明我的 xmldoc 并参考 RealFoo.Bar
而不是 BaseFoo.Bar
。
当我在我的代码中调用 RealFoo.Bar()
时,没有发生任何错误。当我在 cref 属性中这样做时,我收到以下警告:
Warning CS1574 XML comment has cref attribute 'Bar' that could not be
resolved.
我是不是做错了什么,或者这只是 cref 的限制?
我正在使用 visual studio 2017,针对 netstandard2.0 和 net452,并且我的 csproj 中启用了 XML 文档。
您可以禁止显示此警告,但 XmlDoc 输出会将其标记为错误。
<member name="M:MyApplication.DependentClass.SomeMethod">
<summary>
Uses <see cref="!:RealFoo.Bar"/> to do some magic
<!-- ^- indicates an error -->
</summary>
</member>
或者,如果您非常确定将来要覆盖该方法,并且您打算使用 XML 输出生成文档,我会在 RealFoo
as public override void Bar() => base.Bar();
直到你想要一个新的实现。
在这种情况下,我只是静态地写 ClassName.Member,这样就可以了。
/// <summary>
/// Uses <see cref="BaseFoo.Bar"/> to do some magic
/// </summary>
public void SomeMethod()
{
}
看起来 .NET Xml-Doc 不了解继承。
在我的代码库中,我在基 class 中定义了一个方法,基 class 是继承的,但该方法尚未被覆盖。将来很可能会覆盖此方法以添加到基础实现中。
我的设置看起来有点像这样:
public abstract class BaseFoo
{
public virtual void Bar()
{
//default implementation
}
}
public class RealFoo : BaseFoo
{
//extra code, does *NOT YET* override Bar but might in the future
}
public class DependentClass
{
/// <summary>
/// Uses <see cref="RealFoo.Bar"/> to do some magic
/// </summary>
public void SomeMethod()
{
}
}
由于将来很可能会覆盖 Bar,因此我想在未来证明我的 xmldoc 并参考 RealFoo.Bar
而不是 BaseFoo.Bar
。
当我在我的代码中调用 RealFoo.Bar()
时,没有发生任何错误。当我在 cref 属性中这样做时,我收到以下警告:
Warning CS1574 XML comment has cref attribute 'Bar' that could not be resolved.
我是不是做错了什么,或者这只是 cref 的限制?
我正在使用 visual studio 2017,针对 netstandard2.0 和 net452,并且我的 csproj 中启用了 XML 文档。
您可以禁止显示此警告,但 XmlDoc 输出会将其标记为错误。
<member name="M:MyApplication.DependentClass.SomeMethod">
<summary>
Uses <see cref="!:RealFoo.Bar"/> to do some magic
<!-- ^- indicates an error -->
</summary>
</member>
或者,如果您非常确定将来要覆盖该方法,并且您打算使用 XML 输出生成文档,我会在 RealFoo
as public override void Bar() => base.Bar();
直到你想要一个新的实现。
在这种情况下,我只是静态地写 ClassName.Member,这样就可以了。
/// <summary>
/// Uses <see cref="BaseFoo.Bar"/> to do some magic
/// </summary>
public void SomeMethod()
{
}
看起来 .NET Xml-Doc 不了解继承。