我正在调用扩展方法:
database.ExecuteScalar(command).NoNull<string>(string.Empty);
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,扩展方法是不明确的.
我有两个dll具有相同的代码,NoNull(string str)在不同的命名空间下实现.
我怎样才能明确引用一个名称空间?
如果它是相同的命名空间,我将如何完成它?
更新:我无法重写第三方dll.
Ant*_*ram 58
using指令在类文件中只包含其中一个.-
Abc.Xyz.ExtensionsClass.NoNull(database.ExecuteScalar(), string.Empty);
Run Code Online (Sandbox Code Playgroud)
pak*_*_by 17
以防有人需要这个......
如果具有相同名称的扩展方法的concurrect名称空间包含在不同级别(大多数内部包含的名称空间将具有优先级),则可以解决歧义.
例如:
using Namespace1;
namespace MyApplication
{
using Namespace2;
...
db.Execute(); // Namespace2 Execute() will be called
}
Run Code Online (Sandbox Code Playgroud)
我强烈建议您重命名其中一种扩展方法.根据您的其他操作,您可能只需删除using其中一个命名空间的指令,但如果您需要其他命名空间,则无效.(当然,这会导致建议将扩展方法放在它们自己的命名空间中.)重命名通常可以简化一些事情.
| 归档时间: |
|
| 查看次数: |
12451 次 |
| 最近记录: |