コンストラクターで(params)配列を受け入れる属性を作成しました。
internal class MyTestAttribute : Attribute
{
public MyTestAttribute (params Options[] options)
{
....
}
}
Option
ここに列挙型(値がたくさんある)があるので、サンプルの呼び出しサイトは次のようになります
[MyTest(Option.One, Option.Three)]
internal void SomeMethod(int param1, long param2)
{
....
}
これまでのところすべてが桃色で、セットアップは機能しますが、各呼び出しサイトで「属性引数としての配列はCLSに準拠していません」という警告が表示されます。ここで、C#以外の場所からこのアセンブリを使用する必要はなく、エラーとしての警告も実行する必要がないことを認める必要がありますが、何百もの警告が煩わしくなります。
明らかな解決策はCLS準拠をオフにすることですが、現時点ではそれを行うことはできません。
同じことを実行するが、警告を取り除く属性を作成するための他のアプローチはありますか?