2

プロジェクトがあり、それを

<Assembly: CLSCompliant(True)> 

プロジェクト内のすべてCLSCompliant(True)のクラスの前に配置する必要がありますか?それとも、すべてデフォルトで CLSCompliant に設定されていますか?

4

2 に答える 2

7

アセンブリ レベルで CLSCompliant 属性を追加しても、クラスは変更されないため、クラスは CLS 準拠にはなりません。これが行うことは、準拠していないものをエラーとして発生させるようにコンパイラに強制することです。クラスが規則に違反していないことを実際に確認するのは、依然としてあなたの責任です。

そうは言っても、そうです、各クラスに再度追加する必要なく、フィルターダウンしてアセンブリ内のすべてのクラスに影響を与えます。ここから

型に CLS 属性が適用されていない場合、その型は、その型が定義されているアセンブリと同じ CLS 準拠であると見なされます。

この記事は、それがどのように機能するか、何をする必要があるか、なぜそれを行う必要があるかについての非常に優れた概要でもあります.

于 2009-11-20T10:10:35.703 に答える
1

CLSCompliant について私が知っていることは、既定ではアセンブリが準拠していないということです。私の意見では、すべてのプロジェクトが CLSCompliant である必要はありません。他のアプリケーションで使用されるツールまたはライブラリであるプロジェクトは、CLSCompliant である必要があります。Visual Studion Tools for Windows Live をビルドする際、コードで CLSCompliant エラーや警告が発生しないようにする必要がありました。

于 2009-11-20T10:11:35.697 に答える