常见的扩展方法属于哪个项目层?

时间:2011-10-20 13:34:51

标签: c# architecture

我很好奇应用程序的全局系统公共扩展的“层”是什么。例如,我可能有扩展,让我使用类似Rails的“DaysAgo”,“MonthsAgo”等。整数上的扩展方法的类型。这通常属于哪个项目层?我在考虑基础设施,但这似乎意味着与数据库相关(例如基础存储库和数据访问)。我有一个“核心”库项目,所以也许它属于那里?

我知道您希望对与特定类组相关的扩展进行分组,但这些扩展主要用于整个应用程序。在扩展方法之前的几天,它们将处于Utilities静态类等中,那么它们应该在哪里生活?

4 个答案:

答案 0 :(得分:3)

我会将这些方法放在存在这些对象/实体的最低层。

在接口,实体或核心组件中,越低越好,所有上层都可以使用它:)

答案 1 :(得分:2)

您可以(更好)根据范围创建多个基础架构项目,例如:

Infrastructure.Common(这里是一般基础设施 - 最适合扩展方法) Infrastructure.Data(数据访问) Infrastrcuture。 bla bla bla

答案 2 :(得分:2)

我会把它们放在一个从所有其他项目引用的基础项目(类似'Core')中。如果您在一段时间内启动新项目,则可以轻松地重用这些扩展方法。

我会考虑您将用于不同扩展方法集的名称空间。如果某些内容确实属于Data,只需将它们放在Core.Data命名空间中,这样您在其他项目中的代码就不会被那些在该上下文中没有意义的扩展方法所混乱。

答案 3 :(得分:0)

考虑将整个应用程序范围之外的逻辑放在自己的程序集或程序集中。