您如何组织扩展方法?假设我有对象类和字符串类的扩展我很想将这些扩展方法分成IE类:
public class ObjectExtensions { ... } public class StringExtensions { ... }
我是把它弄得太复杂还是这个有意义?
我使用命名空间和类名的组合来组织扩展方法,它与您在问题中描述的方式类似.
通常我在我的解决方案中有一些"主要程序集",它提供了大多数共享功能(如扩展方法).为了讨论起见,我们将这个程序集称为"框架".
在Framework程序集中,我尝试模仿我有扩展方法的东西的名称空间.例如,如果我正在扩展System.Web.HttpApplication,我将拥有一个"Framework.Web"命名空间."System"命名空间中的"String"和"Object"等类转换为该程序集中的根"Framework"命名空间.
最后,命名沿着您在问题中指定的行 - 类型名称以"Extensions"作为后缀.这样就产生了一个类层次结构:
框架(命名空间)
Framework.ObjectExtensions(类)
Framework.StringExtensions(类)
Framework.Web(名称空间)
Framework.Web.HttpApplicationExtensions(类)
好处是,从维护的角度来看,以后很容易找到给定类型的扩展方法.