我有这样一行代码:代码调用一个与它本身不明确的方法?
var results = new GroupedCountsModel { XAxis = entities.ListGroupKeys(fieldNameX) };
当我尝试编译这段代码,我得到一个编译错误:
The call is ambiguous between the following methods or properties:
'MyProject.Shared.QueryGeneration.GroupByHelper.ListGroupKeys<TEntity>(System.Linq.IQueryable<TEntity>, string)'
and
'MyProject.Shared.QueryGeneration.GroupByHelper.ListGroupKeys<TEntity>(System.Linq.IQueryable<TEntity>, string)'
C:\{mypath}\MyProject.Shared\Controllers\BaseEntityController.cs
这很有趣,因为这两种方法错误中列出完全一样。这不像我在不同的命名空间或程序集中定义相同的方法签名。我不知道当编译器本身指向两次相同的方法时,编译器认为它们有什么不同。这是该方法:
public static class GroupByHelper
{
public static List<object> ListGroupKeys<TEntity>(this IQueryable<TEntity> source, string fieldName)
where TEntity : class, IDataEntity
{
//...etc...
}
//...etc..
}
什么可能导致这种情况?我该如何解决这个问题?
如果这是一个ASP.NET项目,那么请尝试清除临时ASP.NET文件,然后重新构建整个解决方案。可能有两个不同版本的临时程序集,导致两个具有相同确切名称和名称空间的不同类。 –
尝试重新启动visual studio。 – cgTag
是啊,我在想这是一个缓存或临时文件的问题。 – cgTag