我正在使用一个第三方库,该库包含许多基于IQueryable的扩展方法。为了使用这些扩展方法,我不希望我的应用程序充斥着指向第三方命名空间的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);
}
}
}
你可能会发现问题就在这里。当我试图在我的扩展方法中调用第三方扩展方法时,它实际上会调用自身,从而创建一个无限循环。
感谢您的帮助。谢谢。