Ответ 1
Вам может понадобиться использовать Reflection, чтобы сделать это, примерно так:
DataAccessLayer.GetType().GetMethod("FindAll<>").MakeGenericMethod(type).Invoke()
Это сообщение в блоге может также содержать необходимую информацию.
У меня есть метод FindAll на моем DataAccessLayer, который выглядит следующим образом:
public FindResult<T> FindAll<T>() where T : Entity, new()
и клиентский код с массивом Type [], который необходимо использовать для итеративного вызова метода FindAll следующим образом:
foreach (var type in typeArray)
{
var result = DataAccessLayer.FindAll<type>();
...
но компилятор жалуется на "Тип или пространство имен". Есть ли простой способ обойти это? Я пробовал type.GetType() или typeof (type) и не работал.
Большое спасибо заранее!
Вам может понадобиться использовать Reflection, чтобы сделать это, примерно так:
DataAccessLayer.GetType().GetMethod("FindAll<>").MakeGenericMethod(type).Invoke()
Это сообщение в блоге может также содержать необходимую информацию.
При использовании generics тип должен быть разрешимым во время компиляции. Вы пытаетесь указать тип во время выполнения.