2015-03-31 244 views
0

我一直在试图做一个非常普遍的枚举处理程序,我希望能够指定与字符串一起使用的枚举。通常情况下,这不会是一个问题,因为我知道如何根据其名称获得枚举。C#从类的名称获取枚举

我面临的问题是枚举位于类中的dll文件中。 这就是我通常会访问枚举:

using ExampleDLL; 

public void test() 
{ 
    //ExampleClass is from the ExampleDLL 
    int value = ExampleClass.ExampleEnum.ExampleEnumerator; 
} 

但在我的情况下,我不知道要使用哪个枚举从ExampleClass中,所以我需要能够通过它的名称在运行时获得ExampleClass中枚举。

所以,我的问题简而言之如下: 如果它位于不同的类中,是否有方法让我的枚举通过它的名称?

+0

你试过反射吗? – 2015-03-31 07:57:42

回答

0

是的。

public class MyClass 
{ 
    public enum MyEnum 
    { 

    } 
} 

Type enu = typeof(MyClass).GetNestedType("MyEnum"); 

通过使用GetNestedType

请注意,那么你将不得不通过反射来使用它。