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

本文关键字:属性 自己的 自定义属性 | 更新日期: 2023-09-27 17:49:18

我们在您的业务逻辑中使用一些dto。我也用这些dto打印。因此,有一个自定义属性printable,它将在打印框架中使用,以识别要打印的属性。在某些情况下,需要对打印引擎的值进行预格式化。我的想法是使用这样的结构:

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

但不幸的是,这不起作用(除了不得不再次使用property -name这一事实令人不愉快之外):

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

所以我知道问题是什么,但如何处理它?一种想法是使用委托,但是有很多具有不同方法签名的格式化方法。

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

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

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

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