【发布时间】:2014-08-20 12:58:23
【问题描述】:
我有以下 C# 代码
class Program
{
[My]
static void Main(string[] args)
{
SomeMethod();
}
[My]
static void SomeMethod()
{
Console.WriteLine("1111");
}
}
public class MyAttribute: Attribute
{
public MyAttribute()
{
MessageBox.Show("enter");
}
~MyAttribute()
{
MessageBox.Show("leave");
}
}
属性 My 仅适用于方法 Main(MyAttribute 的构造函数在进入 Main 方法时执行,而析构函数在离开它们时执行),但不适用于方法 SomeMethod 。
我需要这样的功能:在某些方法中执行部分代码(启动和终止进程),而不修改它们(我认为,属性可能是最好的决定)。
请帮忙
【问题讨论】:
-
尝试更改消息框以登录到控制台!
-
这不是属性的本意。
-
尝试查找 AOP。 stackoverflow.com/questions/3434183/…
-
你想做的不是属性能做什么(至少不是它自己)。属性只是标记方法/类/属性的标记。之后你用它做什么取决于你,但它通常涉及使用反射或 3rd 方库来完成繁重的工作。
-
CodeAccessSecurity属性可以做你需要的:)
标签: c# custom-attributes