var path = require('path');
Попробуйте установить каталог для публики следующим образом.
app.set('view_engine', 'ejs');
app.set('views', path.join(__dirname,'/views'))
Он получит каталог проекта и установит путь просмотра.
Это возвратится "Верный"
List<int> myList = new List<int>();
Console.Write(myList.GetType().IsGenericType && myList is IEnumerable);
, Вы хотите знать, точно ли это - "Список"... или соглашается Вы с ним являющийся IEnumerable и Универсальный?
Следующий метод возвратит тип изделия типа универсального набора. Если тип не реализует ICollection<> затем пустой указатель возвращается.
static Type GetGenericCollectionItemType(Type type)
{
if (type.IsGenericType)
{
var args = type.GetGenericArguments();
if (args.Length == 1 &&
typeof(ICollection<>).MakeGenericType(args).IsAssignableFrom(type))
{
return args[0];
}
}
return null;
}
Редактирование: вышеупомянутое решение предполагает, что указанный тип имеет универсальный собственный параметр. Это не будет работать на типы та реализация ICollection<> с твердым кодированным универсальным параметром, например:
class PersonCollection : List<Person> {}
Вот новая реализация, которая обработает этот случай.
static Type GetGenericCollectionItemType(Type type)
{
return type.GetInterfaces()
.Where(face => face.IsGenericType &&
face.GetGenericTypeDefinition() == typeof(ICollection<>))
.Select(face => face.GetGenericArguments()[0])
.FirstOrDefault();
}
Попытка:
if(yourList.GetType().IsGenericType)
{
var genericTypeParams = yourList.GetType().GetGenericArguments;
//do something interesting with the types..
}
Theres GetType () функционируют в Системе. Класс объекта. Вы попробовали это?
Вопрос неоднозначен.
ответ зависит от того, что Вы подразумеваете под универсальным списком.
А List< SomeType>?
класс А, который происходит из List< SomeType>?
класс А, который реализует IList< SomeType> (в этом случае массив может считаться универсальным списком - например, интервал [] реализует IList< int>)?
класс А, который универсален и реализует IEnumerable (это является тестом, предложенным в принятый ответ )? Но это будет также полагать, что следующий довольно патологический класс универсальный список:
.
public class MyClass<T> : IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
return null;
}
}
лучшее решение (например, использовать ли GetType, IsAssignableFrom, и т.д.) будет зависеть от того, что Вы имеете в виду.