c# - 通过字符串比较检查动态对象类型

标签 c# c#-4.0 dynamic

如果是某种类型,检查基础对象的最佳方法是什么,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/

相关文章:

c# - 在母版页的代码后面更改样式表

c# - 触发 OnPropertyChanged 时更新其他属性

oracle - Oracle中的动态表分区

c# - 验证 SAML 断言上的签名

c# - 如何避免在 .NET 中为不同的数字类型编写重复代码

unit-testing - 如何有效地对使用 ADO.NET 和 SQL Server 和 NUnit 的 DAL 进行单元测试?

c# - 反序列化对象的所有值都设置为 Null

c# - 将 Func<T, int> 值插入 linq-2-sql 查询

时间:2019-03-17 标签:c#dynamicproxy

java - 动态绑定(bind)Java。对象是否具有其声明类型或实际类型的方法?