在IntelliSense中隐藏某些泛型类型的扩展方法

本文关键字:泛型类型 扩展 方法 IntelliSense 隐藏 | 更新日期: 2023-09-27 18:01:13

我有一个扩展方法:

public static void Foo<T>(this MyClass<T> target)
    where T : IEnumerable
{
    // Code goes here
}

如果T是字符串,我想从InteliSense中隐藏此扩展方法,但不适用于其他类型,就像使用字符串时隐藏Linq中IEnumerable的扩展方法一样。我看过EditorBrowsableAttribute,但它似乎不允许隐藏基于泛型类型的方法。

在IntelliSense中隐藏某些泛型类型的扩展方法

尝试将EditorBrowsableAttribute放置到该方法(可能也放置到包含该方法的类(,并将该方法重新定位到另一个程序集(另一个项目(。之后,编译程序集并卸载项目,这样您就只有DLL引用了。这是使用EditorBrowsableAttribute功率的唯一方法。