10

ソリューションをコンパイルすると、次の警告がいくつか表示されます。

warning CS3016: Arrays as attribute arguments is not CLS-compliant

どのタイプが準拠していないかに関するその他の情報は提供されていません。私のプロジェクトでは、コンストラクターで params 配列引数を取るいくつかの属性がありますが、それらはすべて内部的なものであり、CLS 準拠には影響しません。この警告が表示される理由と、表示されるタイプは何ですか?

4

3 に答える 3

7

CS3016 .

引数として配列を取る属性があり、プロジェクトがCLSCompliantとしてマークされている場合、この警告が表示されます。

于 2009-10-28T14:56:01.223 に答える
3

私は今日これに遭遇しました。警告が4回表示されました。次に、そのアセンブリ内の4つのパブリックメソッドを装飾する属性があることがわかりました。それらを1つずつ削除すると、エラーは1つずつ消えていきました。

また、CLSに準拠していなくても問題がない場合は、属性で装飾されたメソッド(またはメソッドが定義されているクラス)に[CLSCompliant(false)]を設定できます。問題のある属性コンストラクター/クラスにそれを配置しても、うまくいきません。最終的に属性はパブリックメソッドのメタデータの一部としてアセンブリの外部に公開される可能性があるため、これは理にかなっていると思います。

于 2010-12-09T17:37:36.830 に答える
0

私は同じ問題に遭遇しました.私がしなければならなかったのは、VS2010の「ファイル内の検索」ダイアログを使用して、使用:ワイルドカードを選択し、検索対象:テキストボックスに入力することでした

\[*\(*\)\]

これにより、すべての属性インスタンスのリストが生成されます。1 つずつ行って、警告を特定して修正することができました。

于 2012-08-23T18:30:36.410 に答える