我正在为 ReSharper 4 编写一个插件。为此,我需要引用几个ReSharper的程序集之一 (JetBrains.Platform.ReSharper.Util.dll) 。这个程序集包含了一个 System.Linq
命名空间, 其中包含了 System.Core 已经提供的一部分扩展方法。
当我编辑代码时,会产生这些扩展方法之间的歧义,因此我无法使用 OrderBy
等方法。如何解决这个问题?我想使用核心的 LINQ 扩展方法,而不是 ReSharper 提供的。
在尝试编译时,我得到以下错误:
The call is ambiguous between the following methods or properties: '
System.Linq.Enumerable.OrderBy<string,int>(System.Collections.Generic.IEnumerable<string>
,System.Func<string,int>)' and 'System.Linq.Enumerable.OrderBy<string,int>(System.Collections.Generic.IEnumerable<string>, System.Func<string,int>
)'
编辑: 我尝试了下面的建议,但不幸的是没有成功。与此同时,我通过删除对System.Core
的引用 "解决了"这个问题。这样我就可以使用 ReSharper DLL 文件提供的扩展方法。
我上传了一个示例程序,其中仅导入了我需要的 ReSharper DLL 文件。我将 System.Core
的别名更改为 SystemCore
,添加了 extern alias
指令,但仍然无法解决问题。如果我漏掉了什么,请告诉我。
P.S. 引用是指安装在默认目录下 "C:\Program Files\JetBrains\ReSharper\v4.1\..."
中的 ReSharper v4.1 DLL 文件。