Ошибка анализа кода 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();