我有一个名为MyCompany.InformixConnector
的.NET项目。我添加了一个COM包装器作为单独的项目/程序集,只能部署到少量客户端。我正在努力解决如何组织项目/程序集。
我目前有两个程序集:MyCompany.InformixConnector
和MyCompany.InformixConnector.Com
.Com
程序集引用了“核心”程序集。但是,如果较低级别的程序集引用较高级别的程序集,则会感觉不对。
我想到了两个选择:
MyCompany.InformixConnector.Core
和MyCompany.InformixConnector.Com
MyCompany.InformixConnectorForCom
我认为基本问题是:COM包装器是否应该与它包装的代码位于同一名称空间中?
答案 0 :(得分:1)
MS naming guidelines表示嵌套命名空间没有任何问题依赖于更高级别的命名空间:
嵌套命名空间应该依赖于包含中的类型 命名空间。例如,System.Web.UI.Design中的类依赖于 在System.Web.UI中的类。但是,System.Web.UI中的类 不依赖于System.Web.UI.Design中的类。
可以将相同的逻辑应用于程序集命名。在您的特定情况下,我会将核心功能放入MyCompany.InformixConnector.Core
命名空间和程序集中,这将明确指出常见内容的位置。
然后为互操作性MyCompany.InformixConnector.Interop
创建一个名称空间,并将处理com和其他3d party所需的所有通用内容放在那里。如果没有这样的东西,你可以跳过它并根据需要添加它。
然后为com包装器MyCompany.InformixConnector.Interop.Com
创建命名空间和程序集。此程序集将引用MyCompany.InformixConnector.Core
和MyCompany.InformixConnector.Interop
(如果需要)。