C# 将ContextAttribute与方法一起使用
以方法为目标的属性不起作用。代码如下。有什么问题吗C# 将ContextAttribute与方法一起使用,c#,custom-attributes,C#,Custom Attributes,以方法为目标的属性不起作用。代码如下。有什么问题吗 using System; namespace AttributeProgram { class Program:ContextBoundObject { [TestAttribute("Hello")] public void Print() { Console.WriteLine("How are you?"); } s
using System;
namespace AttributeProgram
{
class Program:ContextBoundObject
{
[TestAttribute("Hello")]
public void Print()
{
Console.WriteLine("How are you?");
}
static void Main(string[] args)
{
Program obj = new Program();
obj.Print();
}
}
[AttributeUsage(AttributeTargets.Method)]
class TestAttribute : System.Runtime.Remoting.Contexts.ContextAttribute
{
public TestAttribute(string Name) : base("Test")
{
Console.WriteLine(Name);
}
}
}
因为您继承的是
ContextAttribute
,根据文档,它只能应用于类:
[SerializableAttribute]
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Class)]
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.Infrastructure)]
public class ContextAttribute : Attribute,
IContextAttribute, IContextProperty