dotnet 使用 WpfAnalyzers 辅助分析 WPF 应用代码缺陷
引入 WpfAnalyzers 代码分析工具,相当于给团队加入一个免费的代码审查工具人,可以帮忙在日常开发找到很多代码缺陷。加入 WpfAnalyzers 代码分析工具,可以减少代码编写里的低级缺陷,提升开发质量
这是一个基于 Roslyn 的免费开源的 WPF 代码分析工具,专门给 WPF 应用使用,此工具包含了约 200 条 WPF 应用编写规则,在 GitHub 上使用 MIT 最友好协议开放所有源代码,请看 https://github.com/DotNetAnalyzers/WpfAnalyzers
此工具是存放在 .NET Analyzers 组织下的应用,此开源组织不仅包含了 WPF 代码分析工具,还包含了其他很多应用的分析工具
使用 WpfAnalyzers 代码分析工具的方法特别简单,此代码分析工具是基于 Roslyn 代码分析编写的工具,可以通过 NuGet 分发,咱只需要在 VisualStudio 里面,通过 NuGet 管理安装 WpfAnalyzers 即可
或者是编辑 csproj 项目文件,加入以下代码
<ItemGroup>
<PackageReference Include="WpfAnalyzers" Version="4.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
安装完成 NuGet 之后,将自动启用此代码分析工具。此时看看自己编写的逗比代码,将会看到分析器开始工作,告诉大家代码是否存在坑。如以下逗比代码
public static readonly DependencyProperty Foo1Property
= DependencyProperty.Register
(
nameof(Title),
typeof(string),
typeof(MainWindow),
new PropertyMetadata(default(string))
);
public string Foo2
{
get => (string) GetValue(Foo1Property);
set => SetValue(Foo1Property, value);
}
大家看出有几个锅了?代码分析器可以帮助咱看到如下图的问题,大家觉得这个代码分析工具好用不
更有趣的是,如果大家看到分析器告诉咱的代码存在缺陷,但是咱就是不懂为什么。此时可以点击一下前面的 WPFxxx 链接。例如点击上图的 WPF0001 链接,将会跳转到 GitHub 上的对应页面。例如 WPF0001 的内容如下
通过 GitHub 上的描述,咱就可以知道,要求依赖属性的 name 内容和依赖属性的定义相同。如上面代码里面,应该改掉 nameof(Title)
的代码。不过,改哪里和如何改还不用咱费心,此分析工具也带入了修补工具的功能,只需要点点鼠标即可进行自动修复更改,如下图
好,广告结束,五毛钱到手
dotnet 使用 WpfAnalyzers 辅助分析 WPF 应用代码缺陷的更多相关文章
- 打造smali代码库辅助分析
打造smali代码库辅助分析 在分析Android应用程序的时候,我们往往会插入代码重打包apk来辅助我们分析的工作 一个比较取巧的方法就是先用java写好代码以及相关的调用之后, 然后直接扣出代码 ...
- 用IDA辅助分析grub的小技巧
IDA可以辅助我们分析grub的代码,但是bootloader本身只是bin文件,为了让IDA能正确识别分析,我们还需要提供一些基本的参数,比如文件加载到内存的地址等. 图中MBR是加载到0x7C00 ...
- 通过分析 WPF 的渲染脏区优化渲染性能
原文:通过分析 WPF 的渲染脏区优化渲染性能 本文介绍通过发现渲染脏区来提高渲染性能. 本文内容 脏区 Dirty Region WPF 性能套件 脏区监视 优化脏区重绘 脏区 Dirty Regi ...
- DOTNET CORE源码分析之IOC容器结果获取内容补充
补充一下ServiceProvider的内容 可能上一篇文章DOTNET CORE源码分析之IServiceProvider.ServiceProvider.IServiceProviderEngin ...
- [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构
[阿里DIN] 深度兴趣网络源码分析 之 整体代码结构 目录 [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x0 ...
- Windows下使用doxygen阅读和分析C/C++代码
Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Sou ...
- 仅个人兴趣,自己通过搜索他人的成果,结合自己的理解,来分析discuz的代码。
仅个人兴趣,自己通过搜索他人的成果,结合自己的理解,来分析discuz的代码. discuz 版本: 3.2
- 手机自动化测试:Appium源码分析之跟踪代码分析九
手机自动化测试:Appium源码分析之跟踪代码分析九 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析八
手机自动化测试:Appium源码分析之跟踪代码分析八 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家 ...
- 手机自动化测试:Appium源码分析之跟踪代码分析七
手机自动化测试:Appium源码分析之跟踪代码分析七 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest推出手机自 ...
随机推荐
- demo介绍:uni-app统合--各类大转盘demo介绍
这里给大家介绍下我做的一个uni-app的demo:抽奖系统 废话不多说直接上效果图: 线上案例: 首页: 大转盘抽奖页面: 轮播机抽奖页面: 九宫格抽奖页面: 翻牌抽奖页面: 奖品列表页面: 抽奖的 ...
- 快速上手系列:webservice
不同公司的系统交互,用webservice可以起到安全的作用. Webservice使用方法如下: 客户端: 这个是要打成jar包,给别人的用的,里面只是接口,没有实现. 用Webservic ...
- Java SM2
pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...
- CentripetalNet:更合理的角点匹配,多方面改进CornerNet | CVPR 2020
CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好.另外论文提出的十字星变 ...
- #李超线段树 or 斜率优化+CDQ分治#洛谷 4655 [CEOI2017]Building Bridges
题目 分析 列出方程即为\(dp[i]=\min\{dp[j]+(h[i]-h[j])^2+s[i-1]-s[j]\}\) \(dp[j]+h[j]^2-s[j]=2*h[i]*h[j]+dp[i]- ...
- 直播预告丨 OpenHarmony 标准系统多媒体子系统之相机解读
5 月 26日(周四)晚上 19 点,OpenHarmony 开源开发者成长计划知识赋能第五期"掌握 OpenHarmony 多媒体的框架原理"的第六节直播课,即将开播! 深开鸿资 ...
- std::format 如何实现编译期格式检查
C++ 20 的 std::format 是一个很神奇.很实用的工具,最神奇的地方在于它能在编译期检查字符串的格式是否正确,而且不需要什么特殊的使用方法,只需要像使用普通函数那样传参即可. #incl ...
- SEO — 搜索引擎优化
一.多词排名标题设置 SEO(Search Engine Optimization)是指搜索引擎优化,即利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名 优化目的是:让网站在搜索引擎上的曝光率达到 ...
- Weblogic、Tomcat、Apache、Nginx等web容器学习笔记
1.weblogic weblogic是美国Oracle公司的一款产品,是一个基于JAVAEE架构的中间件.是用于开发.集成.部署 .管理大型分布式Web应用.网络应用.数据库应用的Java应用服务器 ...
- nginx重新整理——————http请求的11个阶段中的access阶段[十五]
前言 简单介绍一下access 阶段. 正文 限制某些ip地址的访问权限: syntax: allow address| CIDR|unix:|all; defuat: - context: http ...