C# 在不同的程序集中拆分相同的命名空间有什么好的理由?

C# 在不同的程序集中拆分相同的命名空间有什么好的理由?,c#,visual-studio,dll,namespaces,.net-assembly,C#,Visual Studio,Dll,Namespaces,.net Assembly,我倾向于在同一个已编译程序集中的名称空间中收集类型,这使查找和管理引用变得容易 但是,我看到过一些示例,其中相同的名称空间在项目和程序集之间被拆分(换句话说,为了访问完整的名称空间,必须引用多个DLL) 有谁能给我一些很好的理由来解释为什么你想这样安排代码 谢谢我通常在编写一些功能需要其他程序集的库时这样做 例如,我刚刚编写了一些转换器来将.NET数据类型转换为SQL数据类型。其中大部分我保存在我的标准实用程序库中。然而,System.Drawing.PointF的转换器显然需要System.D

我倾向于在同一个已编译程序集中的名称空间中收集类型,这使查找和管理引用变得容易

但是,我看到过一些示例,其中相同的名称空间在项目和程序集之间被拆分(换句话说,为了访问完整的名称空间,必须引用多个DLL)

有谁能给我一些很好的理由来解释为什么你想这样安排代码


谢谢

我通常在编写一些功能需要其他程序集的库时这样做

例如,我刚刚编写了一些转换器来将.NET数据类型转换为SQL数据类型。其中大部分我保存在我的标准实用程序库中。然而,
System.Drawing.PointF
的转换器显然需要
System.Drawing
。我没有强制所有引用实用程序命名空间的项目引用
System.Drawing
,而是将库的该部分拉入同一命名空间下的单独程序集中。现在,如果需要转换
PointF
,可以引用附加程序集,并在与所有其他程序集相同的命名空间中找到转换器


实际上,我是在上个月问了这个问题。

我以前从未见过这个问题。这听起来是个糟糕的主意!两个名称空间如何知道彼此存在?名称空间是否可以独占使用?这种情况经常发生。例如,System.Web存在于多个程序集中。如果一个程序集未被引用,则无法访问该程序集中的类。Dan——关于可部署单元的另一个问题的答案对我来说更有意义,但我仍然没有看到这样做的致命理由。这种原因让我觉得‘是的,这绝对是正确的方式’。这似乎是偏好的问题…@jimmy_terra你问的不是杀人的理由,只是好的理由。这确实是一个偏好的问题。