我不知道我是否在问不可能,我试图看看我能通过谷歌找到什么,但也许我没有用正确的搜索词来表达我想要的东西。如果它在那里请原谅我!
我希望在执行属性的set方法时使用自定义属性来执行其他代码。
这是一些伪代码:
public class MyAttribute : System.Attribute{
AttributedProperty.Get(Property p){
Console.WriteLine("The value of the Property '{0}' has just been retrieved!", p.Name);
}
AttributedProperty.Set(Property p){
Console.WriteLine("The value of the Property '{0}' has just been set!", p.Name);
}
}
public class MyClass{
private string _someProperty;
[MyAttribute]
public string SomeProperty{
get{ return _someProperty;}
set{ someProperty = value;}
}
}
很少有像伪代码那样简单,所以我准备做一些工作,如果可以的话我只需要一些方向:)
谢谢!
答案 0 :(得分:2)
Attribute
不适合这种方式,他们只是在您的成员上添加元信息,您可以通过Reflection
阅读它们。
相反,您可以使用Castle.Proxy
之类的东西在您的方法和属性上使用拦截器。