C#动态属性参数

SwD*_*n81 3 c# attributes properties browsable

有办法做到以下几点吗?我看到属性参数必须是一个常量表达式,那么我将如何解决这个问题呢?如果我不想使用绑定将某些属性加载到datagridview中,那么下一个最佳替代方案是什么?

  class TestObj
  {
     private bool isBrowsable = false;

     [Browsable(isBrowsable)]
     public string String1
     {
        get
        {
           return "Foo";
        }
     }
     [Browsable(isBrowsable)]
     public string String2
     {
        get
        {
           return "Baz";
        }
     }
  }
Run Code Online (Sandbox Code Playgroud)

Dan*_*ner 6

您可以通过实现ICustomTypeDescriptor接口在运行时提供动态自定义类型信息- 但这是一项相当多的工作,并不像使用属性装饰属性那么简单.