反射是我花最多时间去理解的一个内容。可惜,现在虽然知道了实际语法该如何用,但就是搞不懂有何实际意义。
书上的例子,大多感觉是告诉你 怎么用 ,这样就是反射。可是,实际当中的作用就不清楚了,也体会不出来。
但凡一个技术,我想,一定是在某些功能上,用此技术来实现才最简单,最清楚。并且确实有许多实际案例,这样才有意义。请了解的朋友,讲几个实际项目中用反射来实现的例子,也好加深我对反射的理解。
书上的例子,大多感觉是告诉你 怎么用 ,这样就是反射。可是,实际当中的作用就不清楚了,也体会不出来。
但凡一个技术,我想,一定是在某些功能上,用此技术来实现才最简单,最清楚。并且确实有许多实际案例,这样才有意义。请了解的朋友,讲几个实际项目中用反射来实现的例子,也好加深我对反射的理解。
也是用的反射
就是一个类跟表对应
赋值的时候通过反射给每个属性赋值或者你要Clone对象的时候
比如你有个对象A,需要生成一个跟A有相同属性的对象B
那么一个属性一个属性的赋值Source太多了
而且将来如果A的属性有修改都要改Source
用反射就方便多了你需要动态调用一个类或者方法的时候
而这个类或者方法只是个字符串
这个时候需要用到反射
数据绑定的Eval就是用反射实现的
ClassName l_objLogger = (ClassName)Activator.CreateInstance(l_tLoggerType);
名称 说明
Activator.CreateInstance (ActivationContext) 创建类型的一个实例,该类型由指定的 ActivationContext 对象指定。
Activator.CreateInstance (Type) 使用与指定参数匹配程度最高的构造函数来创建指定类型的实例。
由 .NET Compact Framework 支持。
Activator.CreateInstance (ActivationContext, String[]) 创建类型的一个实例,该类型由指定的 ActivationContext 对象指定,由指定的自定义激活数据激活。
Activator.CreateInstance (String, String) 使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。
Activator.CreateInstance (Type, Boolean) 使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
Activator.CreateInstance (Type, Object[]) 使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
Activator.CreateInstance (AppDomain, String, String) 使用命名的程序集和默认构造函数,来创建其名称在指定的远程域中指定的类型的实例。
Activator.CreateInstance (String, String, Object[]) 使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。
Activator.CreateInstance (Type, Object[], Object[]) 使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
Activator.CreateInstance (Type, BindingFlags, Binder, Object[], CultureInfo) 使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
Activator.CreateInstance (Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) 使用与指定参数匹配程度最高的构造函数创建指定类型的实例。
Activator.CreateInstance (String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 使用指定的程序集和与指定参数匹配程度最高的构造函数来创建指定名称的类型的实例。
Activator.CreateInstance (AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) 使用命名的程序集和最匹配所指定参数的构造函数,来创建其名称在指定的远程域中指定的类型的实例。
Activator.CreateInstance () 创建类型的一个实例,该类型由指定的泛型类型参数指定。
由 .NET Compact Framework 支持。