.net 根命名空间和程序集名称之间的差异

.net 根命名空间和程序集名称之间的差异,.net,namespaces,assemblies,.net,Namespaces,Assemblies,两者之间有什么区别?假设您谈论的是.NET(与Visual Studio相关),那么根命名空间就是您在Visual Studio项目中创建的每个类将成为其中的一部分。它也是在项目文件夹中创建类时自动指定的任何子命名空间的基础 因此,如果基础命名空间为ACMECorp.Bombs,那么您的所有类都将成为ACMECorp.Bombs命名空间的一部分,因此类GravityBomb的全名为ACMECorp.Bombs.GravityBomb。在名为GuidedBombs的项目文件夹中创建的名为Flyin

两者之间有什么区别?

假设您谈论的是.NET(与Visual Studio相关),那么根命名空间就是您在Visual Studio项目中创建的每个类将成为其中的一部分。它也是在项目文件夹中创建类时自动指定的任何子命名空间的基础

因此,如果基础命名空间为ACMECorp.Bombs,那么您的所有类都将成为ACMECorp.Bombs命名空间的一部分,因此类GravityBomb的全名为ACMECorp.Bombs.GravityBomb。在名为GuidedBombs的项目文件夹中创建的名为FlyingBomb的类的完整类型名为ACMECorp.Bombs.GuidedBombs.FlyingBomb

程序集名称只是编译文件的名称,您的代码将编译为可执行文件或库等

我经常看到的一个问题是,程序集名称是否应该与根命名空间相同,也应该与项目名称相同(同样在visual studio中)。我过去的想法是,项目名称应该与程序集名称相同,与根命名空间相同,就像VisualStudio的默认名称一样。然而,如果您需要进行一些主要的重构和重命名,这可能会成为一个麻烦,尤其是如果您使用的是源代码管理(因为您应该开始重命名项目文件夹)

我的建议是,您的项目名称只是项目内容的描述性名称。程序集名称应包括技术区域和组件描述,或公司名称和技术区域(取决于您的偏好),并且根命名空间应符合Microsoft命名标准的描述,因此:

项目:生物识别设备接入

程序集:BiometricFramework.DeviceAccess.dll

命名空间:ACME.biometricsframework.DeviceAccess

为您提供一些参考资料: