3

重複の可能性:
2つのプロジェクトで部分クラスを宣言することは可能ですか?

たとえば、私のプロジェクトソリューションには、ProjectAとProjectBの2つのプロジェクトがあります。作成されたProjectA:MyClassA

次に、ProjectBはProjectAを参照します。ProjectBでProjectAのMyClassAの部分クラスを作成することは可能ですか?

私のプロジェクトAのMyClassA:

namespace TestPartial
{
    public class MyClassA
    {
        public string MyName { get; set; }
    }
}

私のプロジェクトBのMyClassB:

namespace TestPartial
{
    public partial class MyClassA
    {
        public DateTime BirthDate { get; set; }
    }

}

しかし、明らかに両方のプロパティはマージされません....それで、それらが同じプロジェクトにのみある場合にのみ機能すると思いますか?または、いくつかの回避策がありますか?

4

4 に答える 4

7

いいえ、部分クラスは複数のプロジェクト/アセンブリにまたがることはできません。

MSDNの部分的なクラス定義から-制限

同じタイプの一部であることが意図されているすべての部分タイプ定義は、同じアセンブリおよび同じモジュール(.exeまたは.dllファイル)で定義する必要があります。部分的な定義は、複数のモジュールにまたがることはできません。

于 2012-08-17T21:14:07.283 に答える
3

ProjectBでProjectAのMyClassAの部分クラスを作成することは可能ですか?

いいえ。部分クラスは、複数のソースファイルを組み合わせて単一の出力クラスを作成するための言語レベルの機能にすぎません。これはCLRが認識していることではなく、アセンブリ間でクラスを分割することはできません。

あなたが達成しようとしていることについてより多くの情報を与えることができれば、私たちは代替案を推薦することができるかもしれません。構成、または場合によっては継承を使用することをお勧めします。

于 2012-08-17T21:14:40.107 に答える
0

いいえ、部分的なクラスは同じアセンブリ(dllまたはexe)内で完全に定義されている必要があります。2つのアセンブリにまたがる部分クラスを持つことはできません。

于 2012-08-17T21:14:37.510 に答える
0

Jon Skeet によると、それはおそらくそうではないことを意味します。

参照:プロジェクト間で部分クラスを使用する必要がありますか?

于 2012-08-17T21:16:04.160 に答える