根据预处理器指令,我想将类中的所有属性设置为 EditorBrowsableAttribute.Never。
我想过创建一个从 EditorBrowsableAttribute 派生的自定义属性,但不幸的是该类是密封的。
我看过 ICustomTypeDescriptor,但在 GetProperties 方法中,我可以获取每个属性描述符,但属性集合是只读的。
有任何想法吗?
根据预处理器指令,我想将类中的所有属性设置为 EditorBrowsableAttribute.Never。
我想过创建一个从 EditorBrowsableAttribute 派生的自定义属性,但不幸的是该类是密封的。
我看过 ICustomTypeDescriptor,但在 GetProperties 方法中,我可以获取每个属性描述符,但属性集合是只读的。
有任何想法吗?
一种方法是显式使用#if
语法
#if SOMECONDITION
[EditorBrowsable(EditorBrowsableState.Never)]
#endif
public int SomeProperty { get; set; }
我最近再次遇到这个问题,这次答案很快就来了;只需设置几个常量:
Friend Class CompilerUtils
#If HideCode Then
Public Const Browsable As EditorBrowsableState = EditorBrowsableState.Never
Public Const BrowsableAdvanced As EditorBrowsableState = EditorBrowsableState.Never
#Else
Public Const Browsable As EditorBrowsableState = EditorBrowsableState.Always
Public Const BrowsableAdvanced As EditorBrowsableState = EditorBrowsableState.Advanced
#End If
End Class
然后在您的代码中,像这样装饰一个成员:
<EditorBrowsable(CompilerUtils.Browsable)> _
<EditorBrowsable(CompilerUtils.BrowsableAdvanced)> _