Получение Типа Enum witnin класса через отражение C # - PullRequest
1 голос
/ 23 февраля 2012

У меня есть Enum вроде

namespace EnumTest
    {
    public class Enumeration
    {
        public Enumeration();

        public enum Days
        {
           day = sunday,
           night = monday
        }
    }
}

как я могу получить информацию о типе для дней через отражение.

Type type = assembly.GetType(Days);

Type type = typeof(Days) вернет информацию о типе дней.Если у меня есть String s = "Days", с этой строкой s мне нужно получить информацию о типе Days.

Мне нужен тип = Days

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

Я не уверен, понимаю ли я вас.Если у вас есть имя типа в строковом объекте и вы хотите получить объект типа, вам нужно написать полное имя типа.
И так как ваше перечисление является внутренним типом, полное имя типа будет "EnumTest.Enumeration.DaysEnumTest.Enumeration +Дни».

Чтобы получить объект типа, вы можете вызвать

Type type = assembly.GetType("EnumTest.Enumeration.DaysEnumTest.Enumeration+Days");
4 голосов
/ 23 февраля 2012

Чтобы получить доступ к нужному типу, очень просто:

Type type = typeof(Enumeration.Days);

Обратите внимание, что объявление перечисления не будет работать, как вы написали его в своем вопросе.Это должно быть что-то вроде этого:

public enum Days    
    {    
       Monday,
       Tuesday,
       ...
    }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...