我正在使用一个第三方库,它在 IQueryable 之上包含一堆扩展方法。要使用这些扩展方法,我不希望我的应用程序中充斥着对扩展方法所在的第三方 namespace 的 using 语句。
这样我就可以在不久的将来的某个时候尽可能轻松地将它从库中切换出来。但是我不确定这样做的最佳方法是什么。我确实考虑过的一个选择是在项目中创建我自己的一组扩展方法(然后我可以控制命名空间)。问题是我看不出如何维护现有扩展方法的名称。例如:
namespace MyProject.Extensions {
public static class IQueryableExtension {
public static IQueryable<T> Fetch<T, K>(this IQueryable<T> queryable, Expression<Func<T, K>> selector) {
return queryable.Fetch(selector);
}
}
}
您可能会在这里看到问题。在我尝试调用我的第三方扩展方法的地方,它实际上调用自己创建了一个无限循环。
非常感谢您的帮助。谢谢
最佳答案
您不必将扩展方法用作扩展方法,您可以像使用静态方法一样使用它们...因此您可以调用第 3 方 Fetch 方法:
ThirdPartyNamespace.Fetch(queryable, selector)
关于c# - 扩展方法 - 更改命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106880/