我知道attributes
方法体内不支持它,但我想知道也许有人可以解决这个问题。我感兴趣的是一种允许您进入custom Attribute
方法体内部并进入两件事的技术。
- 课堂强化(创建对象
Foo foo = new Foo()
) - 当该对象调用特定函数时 (
foo.bar()
)
稍后我打算使用metadata
输入的attributes
using reflection
。我遇到了一群人,他们实际上认为他们必须extented c#
这样做,但由于没有可下载的,我无法验证它。
这是他们研究论文的链接 Freely Annotating c# 请告诉我解决方案
更新
进一步反思,我已经知道类 Foo 及其方法栏的名称。这样做的目的是知道 foo 在某些方法中调用了 bar() 。
例如
static void Main()
{
[p1inst]
ConcretePrototype1 p1 = new ConcretePrototype1("I");
[p1call]
ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
Console.WriteLine("Cloned: {0}", c1.Id);
// Wait for user
Console.Read();
}
以上是说明结果的示例。目前无法完成,因为编译器给出错误。但上述研究论文的作者声称他们这样做是为了允许方法体内的属性
重点是确定在某些方法中FOO
存在一个类型的对象并且该对象已调用bar()
或未调用