9

現在、Ndepend をテストしていますが、アセンブリを CLSCompliant としてマークする必要があるという警告が表示されます。

私たちのプロジェクトはすべて C# なので、実際には必要ありません。

私が疑問に思っているのは、dllをcls準拠としてマークすることによる悪影響はありますか、それとも警告を無効にするだけですか?

ここで説明されている CLSCompliant の意味を尋ねているわけではないことに注意してください: What is the 'CLSCompliant' attribute in .NET?

4

3 に答える 3

8

これは微妙なケースの 1 つです... CLS 準拠は、呼び出し元を制御できないライブラリ作成者にとっておそらく最も重要です。あなたの場合、「私たちのプロジェクトはすべてC#です」と述べていますが、その場合は正しいです。必要ありません。最も明白な方法でデータを表現することに影響を与える可能性がある (または影響しない可能性がある) 制限 (たとえば、署名されていない型) を追加します。

したがって、それがあなたにの価値ももたらさない場合は、率直に言って、そのルールを無効にしてください。無料で追加できる場合 (属性以外のコードの変更はありません)、おそらく問題ありませんが、すべてはバランスです - 努力と結果です。ここで利益が得られない場合は、時間を投資しないでください。

あなたがライブラリの作成者 (マーチャントまたは OSS) である場合は、それに従う必要があります。

于 2011-08-08T13:11:20.820 に答える
2

署名されていない型など、CLS に準拠していない C# 機能がいくつかあります。いくつかの言語では大文字と小文字が区別されないため、 と など、大文字と小文字だけが異なる型とメンバー、MyObjectおよびmyObjectその他のいくつかの機能があってはなりません。したがって、他の .NET 言語を使用する予定がない場合、コードを .NET としてマークする理由はありませんCLSCompliant

于 2011-08-08T13:12:03.277 に答える
1

唯一の悪影響は、コードがとしてマークされている場合のコンパイラエラーですCLSCompliantが、そうではありません。

于 2011-08-08T13:00:52.680 に答える