在运行时将对象转换为通用类型

雷鬼吉他

我正在使用反射来调用泛型方法,该方法返回一个对象,我希望将其转换为之后调用的方法。

public static string GetTableName(this ObjectContext context, Type T)
{
    var method = typeof(ObjectContext).GetMethod("CreateObjectSet", new Type[]{});
    var generic = method.MakeGenericMethod(T);
    var objectSet = generic.Invoke(context, null);

    var sqlString = objectSet.ToTraceString(); 
    // doesn't work because ToTraceString() isn't a method of object
    // it's a method of ObjectSet<T>
    ...
}

T在运行时才知道。如何将objectSet强制转换为ObjectSet <T>以能够调用ToTraceString()?

雅各布·克拉尔

正如TyCobb所说,您已经使用了更多的反射。继续前进,直到找到可以编写演员表的类型,例如string

public static string GetTableName(this ObjectContext context, Type T)
{
    var method = typeof(ObjectContext).GetMethod("CreateObjectSet", new Type[] { });
    var generic = method.MakeGenericMethod(T);
    var objectSet = generic.Invoke(context, null);

    var toTrace = typeof(ObjectSet<>).MakeGenericType(T).GetMethod("ToTraceString");
    var sqlString = (string)toTrace.Invoke(objectSet, null);

    //...
 }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时将对象转换为通用类型

来自分类Dev

在运行时将对象数组转换为T类型的通用数组typeof

来自分类Dev

在运行时将对象转换为另一种类型

来自分类Dev

将对象转换为仅在运行时已知的所述类型的变量

来自分类Dev

接受“通用”枚举作为参数,然后在运行时转换为 diff 枚举类型的方法

来自分类Dev

将对象转换为String运行时Apache错误:

来自分类Dev

动态对象强制转换为仅在运行时已知的类型

来自分类Dev

在运行时将JObject转换为类型

来自分类Dev

在运行时转换类型数组

来自分类Dev

ModelMapper在运行时更改通用类型-奇怪的行为

来自分类Dev

如何转换为未知的通用运行时类型(等效于C#ChangeType)

来自分类Dev

Ruby在运行时将变量转换为常量

来自分类Dev

在运行时使用功能转换类型列表

来自分类Dev

转换在运行时创建的泛型类型

来自分类Dev

Python何时无法在运行时确定对象的类型?

来自分类Dev

C ++在运行时确定多态对象的类型

来自分类Dev

如何在运行时获取对象类型?

来自分类Dev

在运行时获取对象的父类型

来自分类Dev

在运行时确定对象类型-C#

来自分类Dev

在运行时添加通用约束?

来自分类Dev

在运行时添加通用约束?

来自分类Dev

将对象强制转换为通用类型失败

来自分类Dev

将作为通用类型参数的运行时Dictionary <K,V>强制转换为其正确的编译时类型

来自分类Dev

如何将C ++ / CX运行时对象转换为本机C指针类型?

来自分类Dev

调用通用方法并在运行时设置通用类型

来自分类Dev

C#-将泛型接口转换为传递在运行时确定的类型<T>的泛型类

来自分类Dev

运行时类型转换

来自分类Dev

使用structuremap在运行时将对象传递给类构造函数

来自分类Dev

根据运行时类型转换Expando对象?

Related 相关文章

  1. 1

    在运行时将对象转换为通用类型

  2. 2

    在运行时将对象数组转换为T类型的通用数组typeof

  3. 3

    在运行时将对象转换为另一种类型

  4. 4

    将对象转换为仅在运行时已知的所述类型的变量

  5. 5

    接受“通用”枚举作为参数,然后在运行时转换为 diff 枚举类型的方法

  6. 6

    将对象转换为String运行时Apache错误:

  7. 7

    动态对象强制转换为仅在运行时已知的类型

  8. 8

    在运行时将JObject转换为类型

  9. 9

    在运行时转换类型数组

  10. 10

    ModelMapper在运行时更改通用类型-奇怪的行为

  11. 11

    如何转换为未知的通用运行时类型(等效于C#ChangeType)

  12. 12

    Ruby在运行时将变量转换为常量

  13. 13

    在运行时使用功能转换类型列表

  14. 14

    转换在运行时创建的泛型类型

  15. 15

    Python何时无法在运行时确定对象的类型?

  16. 16

    C ++在运行时确定多态对象的类型

  17. 17

    如何在运行时获取对象类型?

  18. 18

    在运行时获取对象的父类型

  19. 19

    在运行时确定对象类型-C#

  20. 20

    在运行时添加通用约束?

  21. 21

    在运行时添加通用约束?

  22. 22

    将对象强制转换为通用类型失败

  23. 23

    将作为通用类型参数的运行时Dictionary <K,V>强制转换为其正确的编译时类型

  24. 24

    如何将C ++ / CX运行时对象转换为本机C指针类型?

  25. 25

    调用通用方法并在运行时设置通用类型

  26. 26

    C#-将泛型接口转换为传递在运行时确定的类型<T>的泛型类

  27. 27

    运行时类型转换

  28. 28

    使用structuremap在运行时将对象传递给类构造函数

  29. 29

    根据运行时类型转换Expando对象?

热门标签

归档