Ошибка анализа кода Visual Studio CA 1006

Анализ кода выдает ошибку CA1006: Не вкладывайте универсальные типы в подписи членов, когда мы определяем пользовательские определения в контракте интерфейса. Что является лучшим способом решения этой так называемой проблемы дизайна. Любые глубокие мысли по этому поводу.

Спасибо за ваше драгоценное время, чтобы пройти через это.

Пример:-

 Task<IList<Employee>> LoadAllEmployeeAsync();

1 ответ

CA1006: не вкладывать универсальные типы в подписи членов

Я думаю, что правило довольно ясно. Однако причина этого заключается в том, что тот, кто использует ваш класс, должен пройти сложный процесс создания экземпляров сложных параметров и снизить скорость принятия новых библиотек.

Однако, если мы думаем об этом, правило не имеет большого смысла в этом контексте. Прежде всего, у вас есть вложенный сложный универсальный тип возвращаемого значения, который может быть не таким плохим, как аналогичный параметр. Во-вторых, я не думаю, что правило было разработано для асинхронных методов.

Я предлагаю подавить это на методах, которые показывают этот тип возврата. Не злоупотребляйте этим, поэтому убедитесь, что поместили его только в асинхронные методы и только в том случае, если возвращаемый тип является сложным:

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification="This is an async method.")]
Task<IList<Employee>> LoadAllEmployeeAsync();
Другие вопросы по тегам