C# 如何创建具有特定方法调用的[Tag]?

C# 如何创建具有特定方法调用的[Tag]?,c#,tags,c#-5.0,C#,Tags,C# 5.0,我想创建一个具有特定语义目的的新自定义“[Tag]” 图像您在服务中有一个方法列表,您希望其中一些方法记录一些信息:实际上,我正在做类似的事情 public void Method(parameters) { LogMethodCall(); //Method Body } 事实上,我更喜欢创建如下内容: [LogEnabled] public void Method(parameters) { //Method Body } if (Method is LogEnabl

我想创建一个具有特定语义目的的新自定义“[Tag]”

图像您在服务中有一个方法列表,您希望其中一些方法记录一些信息:实际上,我正在做类似的事情

public void Method(parameters)
{
   LogMethodCall();

   //Method Body
}
事实上,我更喜欢创建如下内容:

[LogEnabled]
public void Method(parameters)
{
   //Method Body
}
if (Method is LogEnabled) LogMethodCall()
并在某处存储了如下内容:

[LogEnabled]
public void Method(parameters)
{
   //Method Body
}
if (Method is LogEnabled) LogMethodCall()
这可能吗?C#中是否存在这种可能性?如何称呼它?

使用:

使用它,您可以创建称为
方面的内容。您的将看起来像:

public class LogEnabled : OnMethodBoundaryAspect
{
        public override void OnEntry(MethodExecutionArgs args)
        {
            Logger.LogMethodCall();
        }
}
免费,速成版将是您所需要的一切


这些被称为属性,而不是“标签”

从未对其进行过测试,但您可能想看看:@Dennis的可能重复项这是一个重复项吗?@svick,答案引导用户利用PostSharp。这正是他们所做的。@MichaelPerrenoud,只是解决方案不完全相同。我看不到任何类似的代码,从阿达斯科的答案在可能的重复。即使这样,我认为问题也不应该根据答案重复。只有问题本身才重要。