2

私が持っていると言うfoo.csbar.cs。ソースファイルごとに2つの別々のプロジェクトを作成し、それらを2つのDLLにコンパイルすると、他のプロジェクトでそれらをインポートして使用することに問題はありません。

単一のDLLの出力が必要な場合はどうすればよいですか?(別々のソースファイルを保持する場合)DLLファイルに2つの名前空間を含めることはできますか?そうでない場合、どのようにしてコンテンツをfoo単一barの名前空間に配置できますか?(私はそれらを編集することができます)

4

6 に答える 6

5

同じプロジェクトに両方のファイルを追加するだけです。

DLLファイルに2つの名前空間を含めることはできますか?

はい。逆に、1つの名前空間を複数のDLLで使用できます。

于 2013-01-02T15:48:21.187 に答える
5

2つの別々のプロジェクトを作成する場合

両方のファイルを含む1つのプロジェクトを作成して、出力として1つのDLLを生成します。名前空間は任意の名前空間にすることができますが、慣例では、プロジェクト内のクラスは共通のルート名前空間を共有することが推奨されています。

于 2013-01-02T15:48:23.497 に答える
2

ILMergeを参照してください。

マイクロソフトは言う:

ILMergeは、複数の.NETアセンブリを1つのアセンブリにマージするために使用できるユーティリティです。これは、 Microsoft .NET Framework DeveloperCenterの[ツールとユーティリティ]ページから無料で使用できます。


名前空間は、ソースファイルおよびプロジェクトから完全に独立しています。1つのプロジェクトに複数の名前空間を含めることも、1つのファイルに複数の名前空間を含めることも、複数のプロジェクトに1つの名前空間を含めることもできます。そして、当然のことながら、1つのプロジェクトに複数のソースファイルを含めることができます(「HelloWorld」プロジェクトでない限り、ほとんどの場合、プロジェクトごとに多くのソースファイルがあります)。

[アプリケーション]タブの[デフォルトの名前空間]フィールドで、プロジェクトのプロパティで新しいソースファイルに指定されているデフォルトの名前空間を変更できます。プロジェクトに新しいフォルダとサブフォルダを作成することもできます。これらのフォルダの名前は、これらのフォルダ内に作成された新しいソースファイルのデフォルトの名前空間に自動的に追加されます(ドットで区切られます.)。そして当然のことながら、名前空間ステートメントはいつでも手動で編集できます。名前空間ステートメントを追加または削除してネストします。

1つのソリューションに複数のプロジェクトを含めることもできます。1つのソリューション内で、さまざまなタイプと言語(VBやC#など)のプロジェクトを混在させることもできます。すべてのプロジェクトは通常、1つのアセンブリ(dllまたはexe)を生成します。プロジェクトが同じソリューション内にあるかどうかは、技術的な観点からは違いはありません。それは組織の問題です。

見る:

複雑なソリューションの例:
複雑なソリューションの例

于 2013-01-02T16:00:53.693 に答える
0

C#名前空間は非常にオープンです。

はい、1つのライブラリに複数の名前空間を含めることができます。

しかしまた:あなたは既存の名前空間に物事を追加することができます。例:名前空間に拡張メソッドを追加して、追加System.Linqのインクルードを必要とせずにdllをインクルードするだけでよいようにすることができます。

于 2013-01-02T15:49:01.433 に答える
0

1つのプロジェクト内に複数の子名前空間を含めることができます。ただし、少なくともプロジェクト(およびコンパイル後はDLL)に包括的な名前空間を指定することをお勧めします。

于 2013-01-02T15:51:29.130 に答える
0

これらのファイルで単一のクラスのみをマージする必要がある場合は、部分的なクラスを使用できます

ただし、いずれにせよ、それらは同じ名前空間にある必要があります。

于 2013-01-02T16:20:25.450 に答える