Generics .Net如何比较泛型typeinfo
我要筛选属性集合,以查找以下类型的所有属性:Generics .Net如何比较泛型typeinfo,generics,.net-4.0,typeinfo,Generics,.net 4.0,Typeinfo,我要筛选属性集合,以查找以下类型的所有属性: entity.GetProperties()。其中(p=>p.PropertyType==typeof(EntityCollection)); 上述代码始终不会返回任何结果,因为属性的类型为EntityCollection,其中TEntity是一个属性 我也尝试过使用EntityCollection,但没有成功 我不关心tenty的具体类型,我只希望属性的类型与tenty的类型无关 这看起来应该很简单,我是不是错过了一个技巧?:-) 嗯,你可以使用
entity.GetProperties()。其中(p=>p.PropertyType==typeof(EntityCollection));
上述代码始终不会返回任何结果,因为属性的类型为EntityCollection
,其中TEntity
是一个属性
我也尝试过使用EntityCollection
,但没有成功
我不关心tenty
的具体类型,我只希望属性的类型与tenty
的类型无关
这看起来应该很简单,我是不是错过了一个技巧?:-) 嗯,你可以使用:
Where(p => p.PropertyType.IsGenericType &&
p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))
Where(p=>p.PropertyType.IsGenericType&&
p、 PropertyType.GetGenericTypeDefinition()==typeof(EntityCollection))
这就是你想要的吗?请注意,这将找不到
EntityCollection的子类型
谢谢Jon,这正是我想要的:-)
Where(p => p.PropertyType.IsGenericType &&
p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))