Я использую шаблон T4 для создания DTO для каждого из моих объектов данных, однако при использовании IList он падает.
http://pastebin.com/QxtsDJdt
Func<PropertyInfo, bool> scalarProperties = p => !p.PropertyType.GetInterfaces().Any(t => t == typeof(System.Collections.IList) || t == typeof(System.Collections.ICollection));
Func<PropertyInfo, bool> collectionProperties = p => !scalarProperties.Invoke(p);
и
private bool ExportProperty(PropertyInfo p)
{
return true;
}
Я думаю, что раздел, на который он падает, таков, хотя IList является ICollection, следующее не оценивается как true
:
if (ExportProperty(property) && collectionProperties(property))
Я не уверен, как отлаживать .tt (T4) файлы в VS 2010.
Класс, генерируемый, когда свойство является IList:
public System.Collections.Generic.IList`1[[Namespace.Inspection, Entities, Version=1.0.4168.906, Culture=neutral, PublicKeyToken=null]] Inspections
{
get; set;
}
Когда это должно быть:
public System.Collections.Generic.IList<Namespace.Inspection> Inspections
{
get; set;
}