如果是某种类型,检查基础对象的最佳方法是什么,myObject 可以在“n”级别具有层次结构,我想与字符串进行比较,因为 myObject 是动态的并且我没有对车辆的程序集访问权限
a) 汽车:车辆
b) 自行车:双轮车:车辆
c) 卡车:拖车:四轮车:车辆
dynamic myObject = someObject;
if(myObject is Vehicle) // Works
if(myObject is "Vehicle") //How to ?
最佳答案
你可以使用 IsAssginableFrom
System.Type.GetType(typeNameAsString).IsAssignableFrom(myObject.GetType())
测试是否可以将 myObject 分配给由 typeNameAsString 中保存的名称(字符串)标识的类型的存储位置。
这仅适用于实际加载的类型,您应该使用完全限定名称。
关于c# - 通过字符串比较检查动态对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991193/