nsd*_*div 19 .net c# time attributes function
我想使用属性计时功能.我想做这样的事情:
[TimeIt]
public MyFunc()
{
//do something
...
return;
}
Run Code Online (Sandbox Code Playgroud)
已在此功能的执行,如果由函数所花费的时间高于阈值,则属性应该使用log4net的日志的时间.
这类似于MVC ActionFilterAttribute所做的,除了我不想使用MVC.
Mar*_*ell 14
属性(仅有一些非常少的例外,例如[PrincipalPermission]运行时本身发现的)仅元数据; 所以不要让额外的代码神奇地被调用.例外的是PostSharp等工具,它在构建时定位这些属性并编织额外的代码.
在所有其他情况下,你必须检查这种通过反射自己的属性,并编写代码来调用从属性的额外的方法.这就是ASP.NET MVC的功能; 它标识了一个预期的属性系列,并调用基类方法来触发过滤器.
如果您正在编写插件框架,这可能是有意义的.如果是ad-hoc方法检测 - 如果没有您自己添加额外的代码,这将无法工作.
什么可能更容易为写一个IDisposable写入时,它被设置在经过时间的类型; 然后你可以这样做:
using(new MyTimer("My label")) {
//... Your method
}
Run Code Online (Sandbox Code Playgroud)
也许是轻微的滥用,using但它应该工作.
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |