比较泛型类型的运行时类型

时间:2013-07-04 09:33:33

标签: c# .net entity-framework reflection entity-framework-4

我希望得到所有以“Foo”开头的ObjectSet。我已经编写了下面的代码,但它没有进入if构造。

foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(context))
            {
                if (prop.PropertyType == typeof(ObjectSet<>))
                {
                   // It doesn't step here even though 
                   // prop.PropertyType is an ObjectSet`1...

请帮忙。

1 个答案:

答案 0 :(得分:4)

对于某些prop.PropertyType,我怀疑ObjectSet<X>实际上是X。你可能想要这样的东西:

if (prop.PropertyType.IsGenericType &&
    prop.PropertyType.GetGenericTypeDefinition() == typeof(ObjectSet<>))