如何遍历类列表并将其用作泛型类型?

马赫迪·安萨里(Mahdi J.Ansari)

我列出了30个模型类,并且必须为每个类执行以下操作:

private static IEdmModel GetEdmModel(IServiceProvider serviceProvider)
{
   var odataBuilder = new ODataConventionModelBuilder(serviceProvider);

odataBuilder
 .EntitySet<AnswerCondition>("AnswerConditions")
 .EntityType
 .Select()
 .Expand()
 .OrderBy()
 .Filter()
 .Count();

现在,我想要一个键值列表,并在for循环中执行以下操作:

var list = new List<KeyValuePair<string, Type>>() {
          new KeyValuePair<string, Type>("ActionTypes", typeof(ActionType)),
          new KeyValuePair<string, Type>("AnswerConditions", typeof(AnswerCondition)),
.
.
.
};

foreach (KeyValuePair<string, Type> item in list)
 {
    string address = item.Key;
    Type t = item.Value;
    odataBuilder
     .EntitySet<t>(address)
     .EntityType
     .Select()
     .Expand()
     .OrderBy()
     .Filter()
     .Count();
 }

但是它显示了一个错误 t

't'是变量,但像类型一样使用

如何将类列表存储在变量中,并在以后用作泛型类型?

伊曼纽尔·文提拉(EmanuelVintilă)

使用反射:

Type oDataType = odataBuilder.GetType();
MethodInfo genericMethod = oDataType.GetMethod("EntitySet", 1, new[] {typeof(string)});

foreach (KeyValuePair<string, Type> item in list)
 {
    string address = item.Key;
    Type t = item.Value;
    MethodInfo method = genericMethod.MakeGenericMethod(t);

    dynamic set = method.Invoke(odataBuilder, new object[]{address});
    set
     .EntityType
     .Select()
     .Expand()
     .OrderBy()
     .Filter()
     .Count();
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何遍历泛型类型的列表

来自分类Dev

如何从字段类型正确实例化泛型类并将其放入数组中

来自分类Dev

通过类型作为构造函数,并将其用作提供程序包的泛型

来自分类Dev

泛型方法类型不能用作泛型类的泛型类型

来自分类Dev

如何使用泛型返回泛型类的类类型?

来自分类Dev

如何使泛型类型始终成为泛型类型列表?

来自分类Dev

为什么不能扩展接口“泛型方法”并将其类型缩小到继承的接口“类通用”?

来自分类Dev

如何为泛型类指定泛型集合类型?

来自分类Dev

在c#中遍历泛型类型列表

来自分类Dev

如何使用类型的辅助类泛型

来自分类Dev

如何返回泛型类型的类

来自分类Dev

如何定义不是类的泛型类型?

来自分类Dev

如何确保派生自抽象泛型类的类将自身用作泛型参数

来自分类Dev

如何将动态创建的类用作泛型?

来自分类Dev

具有继承的类类型的泛型列表的类

来自分类Dev

传递类型并将其用作类型参数

来自分类Dev

如何遍历行,将其保存为变量并将其用作变量VBA

来自分类Dev

如何编写可以遍历泛型类型的函数

来自分类Dev

如何在C#中遍历泛型类的属性?

来自分类Dev

Swift:如何遍历泛型类的实例数组

来自分类Dev

Java泛型:如何为泛型类型化的类指定类类型?

来自分类Dev

Java泛型:如何为泛型类型化的类指定类类型?

来自分类Dev

如何不遍历泛型列表读取数据?

来自分类Dev

如何在类中使用扩展的泛型类型的类型?

来自分类Dev

如何从类型列表中获取泛型类型

来自分类Dev

使用foreach遍历泛型列表并将值添加到List <DTO>

来自分类Dev

泛型类型参数C#-如何泛型类返回类型

来自分类Dev

为什么不允许将密封类用作泛型类型参数?

来自分类Dev

为什么不允许将密封类用作泛型类型参数?

Related 相关文章

  1. 1

    如何遍历泛型类型的列表

  2. 2

    如何从字段类型正确实例化泛型类并将其放入数组中

  3. 3

    通过类型作为构造函数,并将其用作提供程序包的泛型

  4. 4

    泛型方法类型不能用作泛型类的泛型类型

  5. 5

    如何使用泛型返回泛型类的类类型?

  6. 6

    如何使泛型类型始终成为泛型类型列表?

  7. 7

    为什么不能扩展接口“泛型方法”并将其类型缩小到继承的接口“类通用”?

  8. 8

    如何为泛型类指定泛型集合类型?

  9. 9

    在c#中遍历泛型类型列表

  10. 10

    如何使用类型的辅助类泛型

  11. 11

    如何返回泛型类型的类

  12. 12

    如何定义不是类的泛型类型?

  13. 13

    如何确保派生自抽象泛型类的类将自身用作泛型参数

  14. 14

    如何将动态创建的类用作泛型?

  15. 15

    具有继承的类类型的泛型列表的类

  16. 16

    传递类型并将其用作类型参数

  17. 17

    如何遍历行,将其保存为变量并将其用作变量VBA

  18. 18

    如何编写可以遍历泛型类型的函数

  19. 19

    如何在C#中遍历泛型类的属性?

  20. 20

    Swift:如何遍历泛型类的实例数组

  21. 21

    Java泛型:如何为泛型类型化的类指定类类型?

  22. 22

    Java泛型:如何为泛型类型化的类指定类类型?

  23. 23

    如何不遍历泛型列表读取数据?

  24. 24

    如何在类中使用扩展的泛型类型的类型?

  25. 25

    如何从类型列表中获取泛型类型

  26. 26

    使用foreach遍历泛型列表并将值添加到List <DTO>

  27. 27

    泛型类型参数C#-如何泛型类返回类型

  28. 28

    为什么不允许将密封类用作泛型类型参数?

  29. 29

    为什么不允许将密封类用作泛型类型参数?

热门标签

归档