Использование ContextAttribute с методом - PullRequest
2 голосов
/ 13 июня 2009

Атрибут, на который нацелен метод, не работает. Код ниже. В чем может быть проблема?

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);
        }
    }
}

1 Ответ

4 голосов
/ 13 июня 2009

Поскольку вы наследуете от 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
...