【发布时间】:2011-11-30 19:34:05
【问题描述】:
假设我有一个具有任意类型的任意数量属性的类
public class Test
{
public string A {get;set;}
public object B {get;set;}
public int C {get;set;}
public CustomClass D {get;set;}
}
我希望此类中的所有对象都具有“错误”和“警告”的概念。例如,基于另一个类中的某些条件,我可能想在属性 A 上设置警告,然后在 GUI 中显示该信息。 GUI 不是我关心的问题。而我应该如何设置这个警告?我希望能够做类似的事情:
对于类中的每个属性,添加一个“警告”和“错误”属性,这样我就可以做到了..
Test t = new Test();
t.A.Warning = "This is a warning that the GUI will know to display in yellow".
t.B.Error = null;
执行此操作的最佳方法是什么?如果我可以为类的每个属性添加一个自定义属性来添加这些附加属性并允许我以清晰的方式访问它们,那就太好了。
我已经看到将字典添加到父类(测试)的解决方案,然后传入与属性名称匹配的字符串,或者使用反射来获取属性名称并将其传入,但我更喜欢更干净的东西。
【问题讨论】:
标签: c# .net c#-4.0 attributes