• StyleCop学习笔记——自定义规则


    本文将简单的一步一步的指导这可能有助于学习如何创建自己的规则
    1、创建一个项目。

    Visual Studio创建一个新的类库项目.NET3.5

    2、引用两个DLL,StyleCop.dll和StyleCop.Csharp.dll.


    3、添加自定义的规则。


    MyCustomAnalyzer.cs代码如下:

    using StyleCop;
    using StyleCop.CSharp;
    
    namespace MyCustomRules
    {
    	/// <summary>
    	/// Custom analyzer for demo purposes.
    	/// </summary>
    	[SourceAnalyzer(typeof(CsParser))]
    	public class MyCustomAnalyzer : SourceAnalyzer
    	{
    		/// <summary>
    		/// Extremely simple analyzer for demo purposes.
    		/// </summary>
    		public override void AnalyzeDocument(CodeDocument document)
    		{
    			CsDocument doc = (CsDocument)document;
    
    			// skipping wrong or auto-generated documents
    			if (doc.RootElement == null || doc.RootElement.Generated)
    				return;
    
    			// check all class entries
    			doc.WalkDocument(CheckClasses);
    		}
    
    		/// <summary>
    		/// Checks whether specified element conforms custom rule CR0001.
    		/// </summary>
    		private bool CheckClasses(
    			CsElement element,
    			CsElement parentElement,
    			object context)
    		{
    			// if current element is not a class then continue walking
    			if (element.ElementType != ElementType.Class)
    				return true;
    
    			// check whether class name contains "a" letter
    			Class classElement = (Class)element;
    			if (classElement.Declaration.Name.Contains("a"))
    			{
    				// add violation
    				// (note how custom message arguments could be used)
    				AddViolation(
    					classElement,
    					classElement.Location,
    					"AvoidUsingAInClassNames",
    					classElement.FriendlyTypeText);
    			}
    
    			// continue walking in order to find all classes in file
    			return true;
    		}
    	}
    
    }

    4、添加一个规则的XML文件,命名和上面类的名字一样。

    把以下内容写到MyCustomAnalyzer.xml文件中

    <?xml version="1.0" encoding="utf-8" ?>
    <SourceAnalyzer Name="My Custom Rule">
    	<Description>
    		Custom rule for demo purposes.
    	</Description>
    	<Rules>
    		<Rule Name="AvoidUsingAInClassNames" CheckId="CR0001">
    			<Context>不能用A字母</Context>
    			<Description>Fires when 'a' letter is used in class name.</Description>
    		</Rule>
    	</Rules>
    </SourceAnalyzer>

    5、构建

    将这个项目生成DLL,把MyCustomAnalyzer.dll放到StyleCop根目录下。


    6、部署

    打开一个我们要测试的项目代码。点击StyleCop Setting设置用我们的MyCoustomRule。


    7、点击RunStyleCop在错误警告列表就会显示检测出来的规则验证。如图:


    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    TP ajax
    TP分页
    TP表单验证
    TP数据删除
    TP数据查询
    TP【连接数据库配置及Model数据模型层】
    TP系统常量信息
    ThinkPHP中Session用法详解
    ThinkPHP部分内置函数
    element-ui select可搜索下拉框无法在IOS或Ipad调起小键盘输入法
  • 原文地址:https://www.cnblogs.com/iplus/p/4490389.html
Copyright © 2020-2023  润新知