Я пытаюсь проверить следующееTypeOf (ICollection <>) .GetTypeInfo(). IsAssignableFrom (TypeOf (IList <>))
typeof(ICollection<>).GetTypeInfo().IsAssignableFrom(targetProperty.PropertyType.GetTypeInfo())
где аргумент, переданный в IsAssignableFrom
является IList<Something>
. Но он возвращает ложь.
Следующие также возвращают false.
typeof(ICollection<>).GetTypeInfo().IsAssignableFrom(targetProperty.PropertyType.GetTypeInfo().GetGenericTypeDefinition())
Даже следующее возвращается false.
typeof(ICollection<>).GetTypeInfo().IsAssignableFrom(typeof(IList<>))
Не должно ли последнее окончательно вернуться к истине?
Как я могу получить правильный результат, если targetProperty.PropertyType
может быть любого типа? Это может быть List<T>
, ObservableCollection<T>
, a ReadOnlyCollection<T>
, пользовательский тип сбора и т. Д.
Мой первый вопрос был дан ниже, а второй - [здесь] (http://stackoverflow.com/a/1075059/122781). – HappyNomad