MarcosMeli / FileHelpers

The FileHelpers are a free and easy to use .NET library to read/write data from fixed length or delimited records in files, strings or streams
https://www.filehelpers.net
MIT License
1.13k stars 349 forks source link

Extend EnumConverter to use EnumMemberAttribute #417

Open jkonecki opened 2 years ago

jkonecki commented 2 years ago

EnumConverter is internally using Enum.Parse method that assumes that the parsed value matches the name of the enum value.

System.Runtime.Serialization has an EnumMemberAttribute (https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.enummemberattribute) that can be used to decorate each field and specify a different value:

public enum Position
{
    [EnumMember(Value = "Emp")]
    Employee,
    [EnumMember(Value = "Mgr")]
    Manager,
    [EnumMember(Value = "Ctr")]
    Contractor
}

This allows for easy definition of mapings between 'proper' names of enum options and the actual string values that will be serialized.

I would like to extend EnumConverter to utilize the EnumMemberAttribute during conversion.

Please let me know if you would be interested in my PR for this change.

jonny-ibdr commented 1 year ago

Bump