Frage

In Abhängigkeit von einer Präprozessordirektive mag ich alle Eigenschaften in einer Klasse EditorBrowsableAttribute.Never einzustellen.

Ich dachte über ein eigenes Attribut Erstellen von EditorBrowsableAttribute abgeleitet, aber leider diese Klasse versiegelt ist.

Ich habe einen Blick auf ICustomTypeDescriptor hatte, aber in der GetProperties Methode kann ich halten, jedes Eigenschaftendeskriptor, aber die Attribute Sammlung nur lesbar ist.

Irgendwelche Ideen?

War es hilfreich?

Lösung 2

ich auf dieses Problem geschah vor kurzem wieder und diesmal die Antwort sehr schnell zu mir kam; einfach ein paar Konstanten ein:

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

Dann in Ihrem Code, dekoriert ein Mitglied wie folgt:

<EditorBrowsable(CompilerUtils.Browsable)> _
<EditorBrowsable(CompilerUtils.BrowsableAdvanced)> _

Andere Tipps

Ein Ansatz ist explizit zu verwenden, um die #if Syntax

#if SOMECONDITION
[EditorBrowsable(EditorBrowsableState.Never)]
#endif
public int SomeProperty { get; set; }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top