将自定义代码放在System命名空间中

Dav*_*own 8 .net c# namespaces

是否有任何最佳实践表明自定义代码不应放在System命名空间中?是否应该System为其子代保留Microsoft代码?

我问,因为我正在编写一个将在许多项目中使用的类库,并且我希望通过放置它来保持一致System.InteropServices(因为它处理P/Invoke).

Meh*_*ari 11

这不是一个好主意,因为它破坏了命名空间的主要好处之一:防止名称冲突.如果更新版本的框架在该命名空间中引入了同名的类型,该怎么办?

这对于System命名空间来说尤其糟糕,因为它们在许多其他代码段中导入并带有using指令,并且在这些命名空间中引入自定义类型会污染具有意外标识符的其他源文件的命名范围.

要对自定义互操作相关类型进行分类,可以创建一个新的命名空间MyProduct.InteropServices.