c# - 扩展方法 - 更改命名空间

标签 c#

我正在使用一个第三方库,它在 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/

相关文章:

c# - 如何使用 xpath 为多个 div 查找元素

c# - Azure 应用服务在应用程序之前终止 https?

c# - Windows 10 UAP 应用程序上的 Google 登录错误

c# - 是否可以在 linq to Entity Framework 中选择一个字符串?

c# - 反射参数名称 : abuse of C# lambda expressions or syntax brilliance?

c# - 在鼠标悬停时在 C# 表单应用程序中制作文本弹出窗口

c# - (N)Hibernate - 是否可以将多个表动态映射到一个类

c# - 我什么时候可以处理 IDisposable WPF 控件,例如Windows 窗体主机?

c# - 使用 IConfigurationRoot 将环境变量绑定(bind)到类

c# - Twitter API 1.1 使用 C# 搜索(在 PCL 中)