Просто наткнулся на это. Вот мой сценарий:Проверка соответствия типа базового типа
|--> BaseTypeLibrary (contains ViewModelBase)
|--> ModelLibrary (contains Model)
|--> Business Library (contains equality check)
public class Model : ViewModelBase{ }
// returns false
bool isViewModel = (type.IsAssignableFrom(typeof(ViewModelBase)));
Во-первых, я убедился, что библиотека UI, и ссылки ModelLibrary указывают на то же BaseTypeLibrary. Вот несколько проверок, которые я выполняю.
// false
Console.WriteLine(type.IsAssignableFrom(typeof(ViewModelBase)));
// true
Console.WriteLine((type.BaseType == typeof(ViewModelBase)));
// true
Console.WriteLine((typeof(ViewModelBase).Module.FullyQualifiedName) == (type.BaseType.Module.FullyQualifiedName));
//true
Console.WriteLine(type.IsSubclassOf(typeof(ViewModelBase)));
Может ли кто-нибудь объяснить, почему IsAssignableFrom не удается?
Как вам получить 'type'? –