none
字符串反射System.Collections.Generic.Queue<T>失败 RRS feed

  • 问题

  • ////经MVP 于小章 提点. 好像System.Collections.Generic.Queue<T>类型在使用字符串反射的时候失败。不知道是何故。应该如何书写呢?
    
    ////同样是使用字符串反射一个范型参数的类
    
     //////////List<T> 是成功的
      Type listType = Type.GetType("System.Collections.Generic.List`1");
      Assert.IsNotNull(listType, "反射System.Collections.Generic.List`1失败。");
    
    
    //////////Queue<T> 为什么失败呢?
      Type queueType = Type.GetType("System.Collections.Generic.Queue`1");
      Assert.IsNotNull(queueType, "反射System.Collections.Generic.Queue`1失败。");
    
    //////////难道是.Net的Bug ?? 还是我用的字符串有问题呢
    
    2011年2月13日 13:34

答案

  • 请使用强名称:

    Type queueType = Type.GetType("System.Collections.Generic.Queue`1, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

    当使用弱名称时无法取得TypeHandle,原因不明。

    2011年2月14日 13:01
    版主