10

自分のプロジェクトから参照している、CLS に準拠していない既存の DLL があります。アセンブリを CLS 準拠としてマークすると、参照されているアセンブリ内の名前が CLS に準拠していないというコンパイラ警告が表示されます。

アセンブリを CLS に準拠させ、参照されているアセンブリを非準拠としてマークする方法はありますか?

4

2 に答える 2

11

はい、DLL は、参照されているアセンブリから非 CLS 準拠のメンバーを公開しない限り、CLS に準拠できます。つまり、独自のパブリックまたは保護されたメンバーまたは型のいずれにも言及していません. (プライベートおよび内部のメンバーと型で引き続き使用できます。)

DLL が準拠していない DLL から直接型を公開する必要がある場合は、それらの型を独自のラッパーにカプセル化するか (たとえば、メソッドが aMyWrapperAroundNaughtyTypeではなくa を返すNaughtyType場合があります)、または API の関連メンバーをマークしてCLSCompliant(false)、これらのメンバーだけをコンパイラ チェックから除外します。

于 2011-02-12T01:16:08.423 に答える