我正在尝试使用IsAssignableFrom
检查一个对象是否可以转换为特定类型。然而,我没有得到预期的结果... 这里有什么我漏掉了吗?
//Works (= casts object)
(SomeDerivedType)factory.GetDerivedObject();
//Fails (= returns false)
typeof(SomeDerivedType).IsAssignableFrom(factory.GetDerivedObject().GetType());
编辑:
上面的例子似乎有误,不能很好地反映我的问题。
我在代码中有一个DerivedType
对象,它被强制转换为BaseType
:
BaseType someObject = Factory.GetItem(); //Actual type is DerivedType
我还通过反射拥有一个PropertyType
:
PropertyInfo someProperty = entity.GetType().GetProperties().First()
我想检查someObject
是否可分配给(可转换为)someProperty
的PropertyType
。我该怎么做?
SomeDerivedType t = factory.GetDerivedObject() as SomeDerivedType;
是否有效很有趣。 - Steve