.NET:COM包装器的命名空间/程序集设计
我有一个.NET项目,名称空间.NET:COM包装器的命名空间/程序集设计,.net,architecture,.net,Architecture,我有一个.NET项目,名称空间MyCompany.InformixConnector。我添加了一个COM包装器作为一个单独的项目/程序集,该项目/程序集将只部署到少数客户端。我正在努力学习如何组织项目/装配 我目前有两个程序集:MyCompany.InformixConnector和MyCompany.InformixConnector.Com .Com程序集引用了“核心”程序集。但是,让较低级别的程序集引用较高级别的程序集感觉是错误的 我考虑了两种选择: 重命名核心程序集,使它们处于同一级别:
MyCompany.InformixConnector
。我添加了一个COM包装器作为一个单独的项目/程序集,该项目/程序集将只部署到少数客户端。我正在努力学习如何组织项目/装配
我目前有两个程序集:MyCompany.InformixConnector
和MyCompany.InformixConnector.Com
.Com
程序集引用了“核心”程序集。但是,让较低级别的程序集引用较高级别的程序集感觉是错误的
我考虑了两种选择:
MyCompany.InformixConnector.core
和MyCompany.InformixConnector.Com
MyCompany.InformixConnectorForCom
MyCompany.InformixConnector.core
名称空间和程序集中,这将明确指出公共内容的位置
然后为互操作性创建一个名称空间MyCompany.InformixConnector.Interop
,并将处理com和其他3d party内容所需的所有通用内容放在那里。如果没有这样的东西,你可以跳过它,根据需要添加它
然后为com包装创建命名空间和程序集MyCompany.InformixConnector.Interop.com
。此程序集将引用MyCompany.InformixConnector.Core
和MyCompany.InformixConnector.Interop
(如果需要)。声明依赖更高级别名称空间的嵌套名称空间没有问题:
嵌套命名空间应该依赖于包含
命名空间。例如,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
(如果需要)。我非常喜欢这样。谢谢,我非常喜欢。非常感谢。