1

名前空間を持つ.NETプロジェクトがありますMyCompany.InformixConnector。少数のクライアントにのみ展開される個別のプロジェクト/アセンブリとしてCOMラッパーを追加しました。プロジェクト/アセンブリを整理する方法に苦労しています。

私は現在2つのアセンブリを持っています:MyCompany.InformixConnectorそしてMyCompany.InformixConnector.Com

.Comアセンブリには、「コア」アセンブリへの参照があります。ただし、下位レベルのアセンブリが上位アセンブリを参照しているのは間違っていると感じます。

私は2つの選択肢について考えました:

  1. MyCompany.InformixConnector.Coreコアアセンブリの名前を変更して、両方が同じレベルになるようにします。 MyCompany.InformixConnector.Com
  2. COMプロジェクトを次のような別の名前空間に配置しますMyCompany.InformixConnectorForCom

基本的な質問は次のとおりだと思います。COMラッパーは、ラップしているコードと同じ名前空間に存在する必要がありますか?

4

1 に答える 1

1

MSの命名ガイドラインでは、ネストされた名前空間が上位レベルの名前空間に依存していることには何の問題もないと述べています。

ネストされた名前空間は、それを含む名前空間の型に依存している必要があります。たとえば、System.Web.UI.Designのクラスは、System.Web.UIのクラスに依存します。ただし、System.Web.UIのクラスは、System.Web.UI.Designのクラスに依存しません。

同じロジックをアセンブリの命名に適用できます。あなたの特定のケースでは、コア機能をMyCompany.InformixConnector.Core名前空間とアセンブリに入れます。これは、一般的なものがどこにあるかを明示的に示します。

次に、相互運用性のための名前空間を作成し、MyCompany.InformixConnector.Interopcomやその他のサードパーティのものを処理するために必要なすべての一般的なものをそこに配置します。そのようなものがない場合は、スキップして必要に応じて追加できます。

次に、comラッパーの名前空間とアセンブリを作成しますMyCompany.InformixConnector.Interop.Com。このアセンブリはMyCompany.InformixConnector.CoreMyCompany.InformixConnector.Interop(必要に応じて)参照します。

于 2013-03-08T17:18:02.837 に答える