繁体   English   中英

根据枚举名称返回枚举字符串

[英]Return Enum String based on Enum Name

我有下面的代码不起作用,但是您可以了解我要做什么。 我不确定如何获取基于枚举的字符串。 我将枚举名称传递给方法:

   class StateInfo
    {
        enum State{ Illinois= 0, Ohio= 1, Indiana= 2, Michigan= 3, Conneticut= 4 }; 

        static void Main(string[] args)

        {
            string result = ConvToJson("State");

        }


        public static string ConvToJson(string enumName)
        {

           Type e = Enum.GetName(typeof(enumName));

          var ret = "{";

          foreach (var val in Enum.GetValues(e))
          {
             var name = Enum.GetName(e, val);
            ret += name + ":" + ((int)val).ToString() + ",";
          }

        ret += "}";

        return ret;
     }

 }

您可以使用Type.GetType方法从指定类型名称的字符串中获取Type

Type e = Type.GetType(enumName);

该名称必须指定完整的名称空间,并且如果该类型不在当前执行的程序集中或在Mscorlib.dll中,则还必须指定程序集名称:

string result = ConvToJson("MyNamespace.StateInfo+State");
string result = ConvToJson("MyNamespace.StateInfo+State, MyAssembly, " +
    "Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089");

将类型直接传递给方法可能会更容易:

string result = ConvToJson(typeof(State));
public static string ConvToJson(Type e)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM