gpt4 book ai didi

.net - 如何在自定义 FxCop 规则中检测自动实现的属性?

转载 作者:行者123 更新时间:2023-12-03 14:21:27 25 4
gpt4 key购买 nike

我正在尝试为 DTO 编写规则,该规则仅允许自动实现的属性。您如何检测使用 FxCop API 自动实现的属性?

最佳答案

实际上,自动属性和用户在 IL 编译代码中实现的属性之间存在差异。自动属性 ​​setter 和 getter 被标记为 System.Runtime.CompilerServices.CompilerGeneratedAttribute .

Auto properties compiled IL code

因此,使用 NDepend 工具,where you can write custom code queries and custom code rules through C# LINQ queries ,匹配自动属性 ​​getter 和 setter 只是编写 LINQ 查询的问题:

from m in Application.Methods
where (m.IsPropertyGetter|| m.IsPropertySetter)
&& m.IsGeneratedByCompiler
select m

NDepend auto-properties code query matching

请注意,在上面的屏幕截图中,您可能会匹配 Resources 中的 getter 和 setter。生成的类,为了防止这种情况,您可以添加类似 && !m.ParentType.IsUsing("System.Resources.ResourceManager") 的子句:

NDepend auto-properties code query matching without resources matching

当然,这一切都可以适应 FxCop 自定义裁决系统。

免责声明:我为 NDepend 工作

关于.net - 如何在自定义 FxCop 规则中检测自动实现的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com