Search code examples
c#asp.net.netasp.net-mvcserialization

How do I add multiple values in EnumMember attribute?


How do I add multiple values in EnumMember attribute ?

[JsonProperty("type")]
public AssetType Type { get; set; }  
    
[JsonConverter(typeof(EnumConverter))]
public enum AssetType
{
    [EnumMember(Value = "node")]
    Folder
}

I need something like

[JsonConverter(typeof(EnumConverter))]
public enum AssetType
{
    [EnumMember(Value = "node","collection")]
    Folder
}

Meaning the value that came from json if is node or collection I need to convert to folder AssetType


Solution

  • Either do as canton7 suggests and assign Folder to multiple members like so

    enum AssetType
    {
        Folder,
        [EnumMember(Value = "node")]
        Node = Folder,
        [EnumMember(Value = "collection")]
        Collection = Folder
    }
    

    (and yes, AssertType.Node == AssertType.Folder)

    Or if that is not possible in your case use your own JsonConverter to write the parsing method yourself.