我将不同的组件放在不同的dll中,然后最终发现我有太多的dll,我应该把一些dll放在一个dll中,但是使用命名空间来分隔它们吗?
答案 0 :(得分:3)
您不必为一个命名空间构建一个程序集。也许你可以在一个程序集中使用嵌套的命名空间。只是尽量避免在几个程序集之间拆分命名空间,之后进入项目时很难理解。
答案 1 :(得分:2)
是的,就构建某个库而言,我个人倾向于将所有相关功能放在一个程序集中。我经历的基本经验法则是,如果单个DLL依赖于以任何方式相关的另一个DLL,我通常会将它们组合成一个DLL。当然,这确实假设两个项目同时开发。
答案 2 :(得分:1)
您还可以在构建过程中使用ILMerge,以便将许多项目组合到一个DLL中。
答案 3 :(得分:1)
我通常使用DLL来强制执行架构约束。例如,我不希望我的数据层知道有关我的业务层的任何信息。当这导致过多的程序集(并且编译时间长)时,将它们组合在一起可能是明智之举。在这种情况下,您可以使用像NDepend这样的工具来检查您的架构限制。