在我的代码库中,我有一个在基类中定义的方法,该基类是继承的,但该方法尚未被覆盖。将来很可能会覆盖此方法,以将其添加到基本实现中。
我的设置看起来像这样:
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属性中这样做时,会收到以下警告:
警告CS1574 XML注释的cref属性“ Bar”不能为 解决。
我在这里做错什么了吗?或者这仅仅是对cref的限制?
我正在使用Visual Studio 2017,目标是netstandard2.0和net452,并且在csproj中启用了XML文档。
答案 0 :(得分:2)
您可以取消显示此警告,但是XmlDoc输出将其标记为错误。
<member name="M:MyApplication.DependentClass.SomeMethod">
<summary>
Uses <see cref="!:RealFoo.Bar"/> to do some magic
<!-- ^- indicates an error -->
</summary>
</member>
或者,如果您确定将来会覆盖该方法,并且打算使用XML输出生成文档,则只需在RealFoo
中将其实现为{{ 1}},直到您想要一个新的实现。
答案 1 :(得分:0)
/// <summary>
/// Uses <see cref="BaseFoo.Bar"/> to do some magic
/// </summary>
public void SomeMethod()
{
}
.NET Xml-Doc似乎不了解继承