Enum.Parse für Faultiere: String mit Spaces als Enum-Wert parsen?



  • Hallo

    Auf gut Glück, vielleicht ist es ja möglich: Kann ich über ein Attribut einen Enum-Wert spezifizieren, welcher bei Enum.Parse einen anderen Namen hat?

    Z.B. folgendes:

    public enum Foo
    {
        FooBar
    }
    
    Enum.Parse(typeof(Foo), "Foo Bar") // Soll als FooBar geparst werden.
    

    Gibt es da eine Möglichkeit für Faulpelze, wo ich das über ein Attribut steuern könnte?



  • Direkt über Enum.Parse nicht, aber du kannst ein eigenes Attribut (je Enum-Value) definieren und danach dann suchen lassen, s. Get enum from enum attribute.
    Als Fallback der GetValueFromAttribute<T>() kannst du dann natürlich noch Enum.Parse aufrufen.



  • Okay, schon mal vielen Dank. Ich werde den Ansatz testen. Leider scheint da einiges an Custom Reflection notwendig zu sein. Im Environment, wo der Code laufen muss, ziehen leider massive Security Restriktionen. Mal schauen ob das lauffähig ist.

    Vielen Dank!


Anmelden zum Antworten