物理或逻辑分开我的dll?

时间:2010-03-16 15:05:11

标签: c# namespaces

我将不同的组件放在不同的dll中,然后最终发现我有太多的dll,我应该把一些dll放在一个dll中,但是使用命名空间来分隔它们吗?

4 个答案:

答案 0 :(得分:3)

您不必为一个命名空间构建一个程序集。也许你可以在一个程序集中使用嵌套的命名空间。只是尽量避免在几个程序集之间拆分命名空间,之后进入项目时很难理解。

答案 1 :(得分:2)

是的,就构建某个库而言,我个人倾向于将所有相关功能放在一个程序集中。我经历的基本经验法则是,如果单个DLL依赖于以任何方式相关的另一个DLL,我通常会将它们组合成一个DLL。当然,这确实假设两个项目同时开发。

答案 2 :(得分:1)

您还可以在构建过程中使用ILMerge,以便将许多项目组合到一个DLL中。

答案 3 :(得分:1)

我通常使用DLL来强制执行架构约束。例如,我不希望我的数据层知道有关我的业务层的任何信息。当这导致过多的程序集(并且编译时间长)时,将它们组合在一起可能是明智之举。在这种情况下,您可以使用像NDepend这样的工具来检查您的架构限制。