在他自己的自定义属性中使用propertie的值

时间:2015-05-15 11:18:09

标签: c# .net properties attributes

我们在您的业务逻辑中使用了一些DTO。我也使用这些DTO进行打印。因此,有一个自定义属性printable将在print-framework中用于识别要打印的属性。在某些情况下,有必要预先格式化printengine的值。 我的想法是使用这样的结构:

[Printable(formatedValue = DoFormatingXY(MyProperty))]
public int MyProperty{ get; set; }

但不幸的是,这不会起作用(除了必须再次使用属性名称是令人不愉快的事实):

Error   An object reference is required for 
        the non-static field, method, or property '...MyPropertie.get'

所以我明白问题是什么,但如何处理呢?一个想法是使用委托,但有很多格式化方法使用不同的方法签名。

1 个答案:

答案 0 :(得分:1)

属性只是元数据,而不是代码。所以将它改为:

[Printable(FormatStyle = FormatStyles.XY)]
public int MyProperty{ get; set; }

然后,打印机代码可以检查属性的FormatStyle参数,并将请求的格式应用于属性。