根据预处理程序指令,我想将类中的所有属性设置为EditorBrowsableAttribute.Never。
我考虑过创建一个从EditorBrowsableAttribute派生的自定义属性,但遗憾的是该类是密封的。
我看过ICustomTypeDescriptor,但在GetProperties方法中,我可以获取每个属性描述符,但属性集合是readonly。
有什么想法吗?
答案 0 :(得分:3)
一种方法是明确使用#if
语法
#if SOMECONDITION
[EditorBrowsable(EditorBrowsableState.Never)]
#endif
public int SomeProperty { get; set; }
答案 1 :(得分:1)
我最近又遇到过这个问题,而这次答案很快就传到了我身上;只需设置几个常量:
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)> _