3

根据预处理器指令,我想将类中的所有属性设置为 EditorBrowsableAttribute.Never。

我想过创建一个从 EditorBrowsableAttribute 派生的自定义属性,但不幸的是该类是密封的。

我看过 ICustomTypeDescriptor,但在 GetProperties 方法中,我可以获取每个属性描述符,但属性集合是只读的。

有任何想法吗?

4

2 回答 2

3

一种方法是显式使用#if语法

#if SOMECONDITION
[EditorBrowsable(EditorBrowsableState.Never)]
#endif
public int SomeProperty { get; set; }
于 2010-10-14T15:35:13.603 回答
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)> _
于 2011-09-23T05:05:16.503 回答