我想创建一个具有特定语义目的的新自定义“[Tag]”。
图片你有一个服务方法列表,你想要其中一些记录一些信息:实际上我正在做类似的事情
public void Method(parameters)
{
LogMethodCall();
//Method Body
}
实际上我更喜欢创造类似的东西:
[LogEnabled]
public void Method(parameters)
{
//Method Body
}
并在某处存储了类似的内容:
if (Method is LogEnabled) LogMethodCall()
这可能吗?在C#中存在这种可能性?怎么称呼?
答案 0 :(得分:2)
使用postsharp:
有了它,您可以创建一个名为aspect
的东西。你的看起来像是:
public class LogEnabled : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
Logger.LogMethodCall();
}
}
免费,快递版将是您所需要的一切
这些被称为属性,而不是“标签”