これに出くわしただけです。これが私のシナリオです:
|--> 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 が失敗する理由を説明できる人はいますか?