如何从枚举类型的名称和int中获取枚举名称

Kai*_*ine 2 c# enums

从应用程序中的另一个层,我可以获取枚举类型的名称和整数值.如何使用此数据来获取该枚举的该值的字符串表示形式.

例如,如果我有一个枚举:

public enum Cheese
{
    Edam = 1,
    Cheddar = 3,
    Brie = 201,
    RedLeicester = 1001
}
Run Code Online (Sandbox Code Playgroud)

我可用的数据是

string dataType = "Cheese";
int dataValue = 3;
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到结果:

"Cheddar"
Run Code Online (Sandbox Code Playgroud)

Evk*_*Evk 5

除了枚举本身的名称之外,您还应该知道枚举声明的命名空间和程序集.假设您在程序集中运行下面的代码,其中定义了枚举,并且您在编译时知道的所有枚举都在同一名称空间中定义,您可以这样做:

string dataType = "Cheese";
int dataValue = 3;
var enumType = Type.GetType("Namespaces.Of.Your.Enums." + dataType);
var name = Enum.GetName(enumType, dataValue);
Run Code Online (Sandbox Code Playgroud)

如果你的枚举在另一个程序集中,而不是运行此代码 - 你将需要提供枚举类型的程序集限定名称(同样使用命名空间).