Reflection & Generics
От: Norex Россия  
Дата: 12.03.10 09:50
Оценка:
Подскажите, если ли более простой способ замапить:
IEnumerable<T> к Array
IСollection<T> к Collection<T>

кроме как, вычитывать слево тип параметра обобщения создавать поочерёдно и пытаться проверить возможность привидения.

что-то типа:
var sourceTypeParam = sourceType.GetGenericParameters();
if(sourceType.IsAssignableFrom(typeof(IEnumerable<>).MakeGeneric(sourceTypeParam)))
{
  sourceType = typeOf(Array<>).MakeGeneric(sourceTypeParam);
}
else if (sourceType.IsAssignableFrom(typeof(ICollection<>).MakeGeneric(sourceTypeParam)))
{
  sourceType = typeOf(Collection<>).MakeGeneric(sourceTypeParam);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.