在 XML 文档中,如何引用同一命名空间中具有相同名称的另一个 class?
In XML documenttion, how do I reference another class that has the same name in the same namespace?
我有几个彼此密切相关的 C# 包。其中每一个都有自己的 IServiceCollectionsExtensions
静态 class 生活在 Microsoft.Extensions.DependencyInjection
命名空间中。我想做的是在其中一个方法的 XML 注释中,引用另一个程序集中另一个 class 中的方法。示例:
// assembly Foo
namespace Microsoft.Extensions.DependencyInjection
{
public static class IServiceCollectionExtensions
{
/// <summary>This is some info</summary>
public static IServiceCollection AddFoo(this IServiceCollection services)
{
// register some types in the DI container
return services;
}
}
}
// assembly Foo.Bar, which has a dependency on Foo
namespace Microsoft.Extensions.DependencyInjection
{
public static class IServiceCollectionExtensions
{
/// <summary>
/// You don't need to call <see cref="IServiceCollectionsExtensions.AddFoo(IServiceCollection)" /> -- we'll do it for you
/// </summary>
public static IServiceCollection AddFooBar(this IServiceCollection services)
{
services.AddFoo();
// register some other types in the DI container
return services;
}
}
}
问题出在 Foo.Bar 项目中,Visual Studio 抱怨“XML 具有无法解析的 cref 属性 'AddFoo(IServiceCollection)'” (CS1574)。
请注意,这是一个人为的例子。我完全知道在大多数情况下您可以多次注册相同的服务。
我怎样才能做到这一点?提前致谢。
最好的答案可能是“不要那样做”,只需将您的扩展方法命名为 class 不同的名称即可。如果它们毕竟是扩展方法,class 的名称通常并不重要。 (在“Microsoft”命名空间内定义内容在这里也有点令人困惑,因为好吧,我猜你不会在 Microsoft 程序集中发布它!)
如果您真的想这样做,在 cref 中您可以以 T: 开头来显式引用类型或以 M: 开头来显式引用方法,但此时您选择退出所有验证或 IDE 功能,因为那是后门。
我有几个彼此密切相关的 C# 包。其中每一个都有自己的 IServiceCollectionsExtensions
静态 class 生活在 Microsoft.Extensions.DependencyInjection
命名空间中。我想做的是在其中一个方法的 XML 注释中,引用另一个程序集中另一个 class 中的方法。示例:
// assembly Foo
namespace Microsoft.Extensions.DependencyInjection
{
public static class IServiceCollectionExtensions
{
/// <summary>This is some info</summary>
public static IServiceCollection AddFoo(this IServiceCollection services)
{
// register some types in the DI container
return services;
}
}
}
// assembly Foo.Bar, which has a dependency on Foo
namespace Microsoft.Extensions.DependencyInjection
{
public static class IServiceCollectionExtensions
{
/// <summary>
/// You don't need to call <see cref="IServiceCollectionsExtensions.AddFoo(IServiceCollection)" /> -- we'll do it for you
/// </summary>
public static IServiceCollection AddFooBar(this IServiceCollection services)
{
services.AddFoo();
// register some other types in the DI container
return services;
}
}
}
问题出在 Foo.Bar 项目中,Visual Studio 抱怨“XML 具有无法解析的 cref 属性 'AddFoo(IServiceCollection)'” (CS1574)。
请注意,这是一个人为的例子。我完全知道在大多数情况下您可以多次注册相同的服务。
我怎样才能做到这一点?提前致谢。
最好的答案可能是“不要那样做”,只需将您的扩展方法命名为 class 不同的名称即可。如果它们毕竟是扩展方法,class 的名称通常并不重要。 (在“Microsoft”命名空间内定义内容在这里也有点令人困惑,因为好吧,我猜你不会在 Microsoft 程序集中发布它!)
如果您真的想这样做,在 cref 中您可以以 T: 开头来显式引用类型或以 M: 开头来显式引用方法,但此时您选择退出所有验证或 IDE 功能,因为那是后门。