Передайте соответствующий класс в typeof (__) из значения, хранящегося в переменной в C # - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь читать данные Excel и загружать их в соответствующие таблицы в базе данных SQL.В моей рабочей таблице Excel имя рабочей таблицы представляет собой имя таблицы базы данных, в которую необходимо вставить данные.

Таким образом, в приведенном ниже коде в var "tablename" содержится имя листа, и мне нужно передать соответствующий класс модели таблицы в typeof(____), чтобы получить имена столбцов таблицы, после чего имя столбца таблицы измодель будет сравниваться с именами столбцов таблицы базы данных, и будет выполнена операция массовой загрузки.

Так может кто-нибудь помочь мне передать значение, хранящееся в tableName, как класс в:

typeof(_______).GetProperties().Select(p => p.Name);

Код:

var tableName = employeeData.TableName;

var sourceColumnList = typeof(ConsentReportSheetTableInfo).GetProperties().Select(p => p.Name);

Ответы [ 2 ]

2 голосов
/ 10 марта 2019

Вы можете попробовать

var sourceColumnList = Type.GetType(employeeData.TableName).GetProperties().Select(p => p.Name);
1 голос
/ 10 марта 2019

Самый простой способ - использовать Assembly.GetType(name).

Итак, вы можете использовать что-то вроде:

var assembly = Assembly.GetExecutingAssembly();
var type = assembly.GetType(tableName);
var properties = type.GetProperties().Select(p => p.Name);

(Это предполагает, что тип находится в исполняющей сборке, конечно.)

Официальную документацию с примерами вы можете найти здесь .

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