首页 > 解决方案 > 它说调用不明确,但只有一个命名空间

问题描述

我正在将一些代码移植到 .NET Standard 2.1,现在执行此操作时出现错误:

tmpQuote.SpecialCosts.RemoveAll(cqMainCost => dsSpecialCosts.Tables[0].AsEnumerable().Any(row => cqMainCost.Name == row.Field("CostName")));

它在 AsEnumerable() 上失败

以下方法或属性之间的调用不明确:“System.Data.DataTableExtensions.AsEnumerable(System.Data.DataTable)”和“System.Data.DataTableExtensions.AsEnumerable(System.Data.DataTable)”

通常在相同的方法名称之间存在歧义,但在两个不同的命名空间中。

在同一个命名空间中,相同的方法名称之间存在歧义吗?

该项目正在引用 nuget 包:System.Data.DataSetExtensions 该项目还引用了其他项目,这些项目又引用了相同的 nuget 包。

但这是很常见的事情,从来没有给我造成过这个问题。

更新:发现这个:https ://github.com/dotnet/standard/issues/1622

这让我更仔细地研究了其他被引用的项目,它们是 2.0 而不是 2.1 将我的项目更改为 2.0 解决了这个问题。

标签: c#namespacesextension-methods

解决方案


问题是它是一个网络标准 2.1 项目,引用了其他网络标准 2.0 项目。并且 DataSetExtensions 在 2.0 和 2.1 中并不相同

将项目更改为 2.0 解决了问题


推荐阅读