反射泛型方法
最近在拜读C# in depth这本书,在书中的反射泛型方法这一小节中遇到了一个小问题
class Class1 { internal static void PrintType<T>() { Console.WriteLine(typeof(T)); } } static void main(string args[]) { Type typeClass1 = typeof(Class1); MethodInfo method = typeClass1.GetMethod("PrintType"); MethodInfo contructMethod = method.MakeGenericMethod(typeof(string)); contructMethod.Invoke(null, null); Console.ReadKey(); }
主函数运行后没有输出,并且出现一个Bug:
 MethodInfo contructMethod = method.MakeGenericMethod(typeof(string)); 未将对象引用到实例。
经过排查发现是由于PrintType函数的访问权限的问题。
在获取反射泛型方法时,该方法的访问权限必须为public,其他的权限不能让MakeGenericMethod()获取该方法。
    迷茫之人,追求人生意义。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号