2014-02-12 49 views
1

有没有办法用属性覆盖auto属性的setter和getter?覆盖属性设置器和获取器

这样的:

[CustomAttribute] 
public int Value { get; set; } 

...

public class CustomAttibute : Attribute 
{ 
    public override NotExistingPropertySetter(object value) 
    {  
     if (((int)value) < 10) 
     { 
      value = 10; 
     } 
    } 
} 

回答

3

号是从来没有 “执行” 的属性。您需要构建一个构造以查找属性并在发现后执行某些操作。

.NET中的AoP(面向方面​​编程)只能通过使用PostSharp等第三方软件来实现。

+0

https://github.com/Fody/Fody是另一种选择实现这一目标。 –

+0

此外,您可能会发现,如果您的目标只是不要多次写入相同的属性代码,那么您可能会使用错误的抽象。 – Magus

1

我相信它会与AOP enter image description here

+1

尽管这并不完全错误,但SO直接支持代码,并且在四个字母的单词中没有图像的情况下,句子通常会更好地读取。 (或者任何单词,对于这个问题!)我喜欢你的语法突出显示,但是。 – Magus

+0

你错过了这个事实,即这是PostSharp,原始海报可能没有的第三方工具。毕竟,它并不是很便宜。 – nvoigt