Как назначить тип данных списка из модели в С#?

94
7

Я делаю проект ASP.NET MVC, в моем коде я хочу назначить тип данных List из модели с помощью функции GetType, но я получил ошибки, возможно ли это?

Type fileType = Type.GetType("MyProject.Models.User");
List<fileType> listUser = null;

Заранее спасибо.

спросил(а) 2021-01-14T00:27:41+03:00 2 недели назад
1
Решение
73

Получить тип List<>, сделать его общим типом, обертывающим ваш отраженный тип, и вызывать методы на нем.

var type = typeof(string);

var listType = typeof(List<>);
var constructedListType = listType.MakeGenericType(type);

var instance = Activator.CreateInstance(constructedListType);

constructedListType.InvokeMember("Add", BindingFlags.InvokeMethod, null, instance, new[] { "1" });
constructedListType.InvokeMember("Add", BindingFlags.InvokeMethod, null, instance, new[] { "2" });
constructedListType.InvokeMember("Add", BindingFlags.InvokeMethod, null, instance, new[] { "3" });

Console.WriteLine($"instance has {((List<string>)instance).Count} item(s)");
Console.WriteLine($"instance[0] is {((List<string>)instance)[0]}");

// Output
// instance has 3 item(s)
// instance[0] is 1

ответил(а) 2021-01-14T00:27:41+03:00 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема