重複の可能性:
「属性引数としての配列は CLS に準拠していません」という警告が表示されるが、型情報が指定されていない
いくつかの場所でこの警告を生成するコードがあります。それらを修正したいのですが、C# コンパイラがエラーの行を報告しないため、それらがどこにあるのかわかりません (そのための未解決の MS Connect の問題があります)。
問題のあるコードの場所を教えてくれるツールはありますか? IL レベルのツールは問題なく、メソッド名が分かっていて、型を宣言するだけで十分です。
重複の可能性:
「属性引数としての配列は CLS に準拠していません」という警告が表示されるが、型情報が指定されていない
いくつかの場所でこの警告を生成するコードがあります。それらを修正したいのですが、C# コンパイラがエラーの行を報告しないため、それらがどこにあるのかわかりません (そのための未解決の MS Connect の問題があります)。
問題のあるコードの場所を教えてくれるツールはありますか? IL レベルのツールは問題なく、メソッド名が分かっていて、型を宣言するだけで十分です。
次のようなクラスを宣言しました。
[SomeAttribute(new string[] { "foo", "bar" })
class SomeClass { }
または、次のような属性を宣言しました:
class SomeAttribute : Attribute
{
public SomeAttribute(string[] arr) { } // or another array
}
これはすべて、アセンブリが CLSCompliant としてマークされているために発生しています。
[assembly:CLSCompliant(true)]
次のプロセスを採用します。
問題の属性がソリューションで定義されている場合、最初の部分はかなり簡単です。
属性が依存関係からのものである場合、正規表現検索を使用して、そのような属性が使用されている場所を見つける必要がある場合があります。