I have to send string with xml containing enums serialized to xml. Those enums are in nuget package, so I can't edit them. All enums have name, value and description attribute.
public enum FileExtenstion
    [Description("XML extension")]
    xml = 1,
    
    [Description("TXT extension")]
    txt = 2
end enum
My function to get xml from this enum looks like this:
public static string GetFileExtension()
{
    var _cache = System.Enum.GetValues(typeof(FileExtension))
        .Cast<FileExtension>()
        .Select(enumValue => new EnumToXmlSerializer
        {
            Name = enumValue.ToString(),
            Value = (int)enumValue,
            Description = enumValue.GetDescription()
        }).ToList();
    (...)
}
public class EnumToXmlSerializer
{
    public string Name { get; set; }
    public int Value { get; set; }
    public string Description { get; set; }
}
Works well. But I have a lot of enums to convert and better way will be to prepare some parametrized function with convert string with name of enum ("FileExtension") to type. I haven't idea how to convert enum name (not enum every value name but enum type name) and convert its to type. In stackoverflow I found only conversion for enum values not all types.
I'm looking for solution to prepare function like this:
public string GetXmlFromEnumTypeName("FileExtension")
to get:
<enums>
<enum><name>xml</name><value>1</value><description>XML extension</description></enum>
<enum><name>txt</name><value>2</value><description>TXT extension</description></enum>
</enums>
I suppose there will be one line to change my GetFileExtension function but I usually get it wrong about things like that.