提问者:小点点

每个命名空间将进入哪个程序集?


出于好奇,在我的C#项目/解决方案中,每个命名空间将进入哪个程序集? 它如何决定将哪个命名空间放入哪个程序集?


共2个答案

匿名用户

每个命名空间将进入哪个程序集?

命名空间和程序集之间的相关性为零。

编译后的类进入项目创建的程序集--每个项目一个程序集。 命名空间可以用于许多程序集,从技术上讲,它们之间的相关性是零,尽管惯例规定您在一个程序集中保留相关的命名空间--编译器并不关心。

最后,类型进入一个程序集,类型有一个命名空间--但是构建过程中的任何东西都不关心它去哪里的决定。

匿名用户

每个项目通常生成一个程序集,而不考虑命名空间。 因此,命名空间和程序集之间没有直接关系,因为您可以在单个项目中声明多个命名空间,也可以在不同的程序集中声明相同的命名空间。

然而,通常的建议(H.T.CodeCaster)是一致地命名项目,它们的输出程序集和它们的名称空间,这样就可以清楚地知道哪个名称空间来自哪个程序集。 因此,如果创建一个名为mycompany.myapp.csproj的项目,它将默认创建一个名为mycompany.myapp.dll(或.exe)的程序集,您创建的新文件将位于mycompany.myapp命名空间中。 您可以在项目中有子命名空间,通常对应于项目中的文件夹结构,例如文件夹section包含命名空间mycompany.myapp.section中的类型。 但同样,这是所有的约定--您可以更改每个文件中的namespace指令以执行不同的操作。