具有方差参数的接口上的扩展方法未在IntelliSense中显示

时间:2015-02-07 12:49:22

标签: c# visual-studio extension-methods intellisense

我有以下界面:

public interface IInterface<out T> {
    T Value { get; }
}

和两个扩展方法(在与接口相同的命名空间中):

public static class InterfaceExtensions
{
    public static void ExtensionAny<T>(this IInterface<T> ifc) { }
    public static void ExtensionEnumerable<T>(this IInterface<IEnumerable<T>> ifc) { }
}

以下代码编译没有任何问题:

IInterface<IEnumerable<string>> enumerable = null;
IInterface<IList<string>> list = null;

enumerable.ExtensionAny(); enumerable.ExtensionEnumerable();

list.ExtensionAny(); list.ExtensionEnumerable(); 

但Visual Studio在ExtensionEnumerable变量上的IntelliSense中没有显示list

我已经尝试重置VisualStudio设置并删除了所有自定义扩展程序,但它没有帮助。我还尝试使用VisualBasic.NET中的IInterface<IList<string>>,并在IntelliSense中显示 ExtensionEnumerable

更糟糕的是,我的一些朋友在智能感知列表中使用这种方法,而其他人不知道 - 它并不依赖于ReSharper。

我只想拥有ExtensionEnumerable方法的智能感知,任何建议?

0 个答案:

没有答案