C#学习笔记 ----检测(第19章)

System.Diagnostics

 

代码协定

.NET 4在System.Diagnostics.Contracts名称空间中包含的类可用于静态检查代码和在运行期间检查代码,这些类可由所有的.NET语言使用。

利用这个功能可以定义方法中的前提条件、后置条件和常量。

 

前提条件检查传递给方法的参数。Requires()和Rquires<TException>()方法是可以用Contract类定义的前提条件

后置条件定义了方法执行完后共享数据和返回值的保证。Ensure()和EnsuresOnThrow<TException>()方法是后置条件

常量为方法生命周期中的变量定义了协定。Contract.Invariant()方法定义了在方法的整个生命周期中都必须满足的条件

 

接口的协定 ContractClass特性

 

跟踪

TraceSource类可以写入跟踪消息。跟踪需要编译器设置的Trace标志

 

跟踪的配置在<system.diagnostics>元素中完成

跟踪开在<switches>中定义

侦听器<Listeners>

侦听器应由多个跟踪源使用<sharedListeners>

 

每个侦听器都有一个Filter属性,它定义了侦听器是否应写入跟踪消息

 

事件日志

EventLog类读写事件日志

 

使用EventLog类或EventLogInstaller类的CreateEventSource()方法。创建事件源

日志文件位于<windows>\System32\WinEvt\Logs目录

要写入事件日志项,可以使用EventLog类的WriteEntry()或WriteEvent()方法

 

资源文件,扩展名.mc

使用消息编译器mc.exe,创建一个二进制的消息文件。示例:

mc -s EventLogMessages.mc

 

性能监控

System.Diagnostics名称空间为性能监控提供了如下类:
PerformanceCounter类可以用于监控计数和写入计数
PerformanceCounterCategory类可以查看所有已有的类别,以及创建新类别。
PerformanceCounterInstaller类用于安装性能计数器,它的用法类似于前面讨论的EventLogInstaller类。

你可能感兴趣的:(学习笔记)