只是偶然发现了这个。这是我的场景:
|--> 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 失败?