CLS-совместимые атрибуты и параметры массива

Я создал атрибут, который принимает массив (params) в своем конструкторе.

internal class MyTestAttribute : Attribute
{
    public MyTestAttribute (params Options[] options)
    {
        ....
    }
}

Вариант здесь представляет собой перечисление (с большим количеством значений), поэтому пример сайта для звонков будет

[MyTest(Option.One, Option.Three)]
internal void SomeMethod(int param1, long param2)
{
  ....
}

Пока все безупречно, и настройка работает, но я получаю сообщение " Arrays поскольку аргументы атрибута не соответствуют требованиям CLS "предупреждение на каждом сайте вызова. Теперь я должен признать, что мне не нужно использовать эту сборку где-либо еще, кроме C #, и я не делаю предупреждения как ошибки, но сотни предупреждений становятся раздражающими.

Очевидное решение - отключить совместимость с CLS, но в настоящий момент я не могу этого сделать.

Есть ли другой подход к созданию атрибута, который по-прежнему будет делать то же самое, но избавится от предупреждений?

6
задан SWeko 31 October 2011 в 08:03
поделиться