Как я могу преобразовать мое имя файла как строковую переменную, чтобы соответствовать typeof (имя файла)? - PullRequest
0 голосов
/ 01 мая 2019

Я использую список имен файлов, чтобы произвести разбивку структуры файлов. Используя имя файла, я могу получить список имен полей, используя

var FieldNames = typeof(Carers).GetProperties().Select(f => f.Name).ToList();

Однако, если я заменю 'Carers' на очевидно, это Class со строковой переменной имени Class, это вызывает конфликт с typeof (). Как я могу преобразовать строковую переменную для работы с typeof ()?

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Вы не можете использовать typeof("type_name"), чтобы получить Type. Вместо этого вы должны использовать либо:

Type.GetType("type_name").GetProper...

или

Assembly.GetType("type_name").GetProper...

В первом методе вам может потребоваться указать, к какой сборке относится тип (ref: Метод Type.GetType )

Во втором методе вам нужно будет выбрать тот, который Assembly определил тип (ref: Assembly.GetType Method )

В любом случае они возвращают Type, который вы можете использовать GetProperties в том виде, в котором вы находитесь в существующем коде.

0 голосов
/ 01 мая 2019

Не уверен, но я думаю, что это должно работать:

var FieldNames = Type.GetType ("Carers"). GetProperties (). Select (f => f.Name) .ToList ();

...