c# - Visual Studio 代码分析错误 CA 1006

标签 c# visual-studio code-analysis fxcop static-code-analysis

代码分析抛出错误 CA1006: Do not nest generic types in member signatures每当我们在接口(interface)契约中定义自定义定义时。处理这个所谓的设计问题的最佳方法是什么。对此有任何深刻的想法。

感谢您抽出宝贵时间来完成此过程。

例子:-

 Task<IList<Employee>> LoadAllEmployeeAsync();

最佳答案

CA1006: Do not nest generic types in member signatures

我认为规则非常明确。然而,其背后的原因是,无论谁使用您的类,都必须经历一个复杂的过程来实例化复杂的参数,并降低了新库的采用率。

但是,如果我们考虑一下,这条规则在这种情况下没有多大意义。首先,您有一个嵌套的复杂泛型返回类型,它可能没有类似参数那么糟糕。其次,我不认为该规则是为异步方法设计的。

我建议在展示此返回类型的方法上抑制它。不要滥用它,所以请确保只将它放在异步方法上,并且仅当返回类型很复杂时:

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification="This is an async method.")]
Task<IList<Employee>> LoadAllEmployeeAsync();

关于c# - Visual Studio 代码分析错误 CA 1006,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989046/

相关文章:

c# - 重置统一 AR session 以在 iOS 上查找可跟踪的平面

mysql - MS SQL 数据库管理/IDE

c - 这段 C 代码中的括号如何使结果如此不同?

testing - 为什么动态分析不能覆盖一个程序的所有执行路径?

c# - amazon s3 直接从 asp.net 通过 url 上传文件

c# - 在 MFC 应用程序中托管 Windows 窗体 (C#) (VC++,VS6.0)

javascript - 如何从一个cshtml文件中调用或使用cshtml文件的功能?

javascript - Visual Studio 与 WebStorm 中的 Typescript 编译——两者都使用 Node.js 进行编译吗?

c# - Visual Studio 2017 无法在 Windows 10.0 上启动 IIS Express 10.0

c# - Visual Studio GlobalSuppression.cs 文件和 UTF-16