关于反射的一些总结
2013-08-01 14:41
323 查看
关于反射的一些总结:
1) Load,LoadFrom和LoadFile:
Load:只加载本地程序集中指定的类(通过命名空间等方式指定)。
LoadFrom:通过外部相对或者绝对路径加载指定的类库或者Exe等文件,且重复加载相同程序集仅第一次有效;如果该程序集引用其它程序集,会被自动加载。
LoadFile:通过外部相对或者绝对路径加载指定的类库或者Exe等文件,重复加载相同程序集最后一次有效;如果该程序集引用其它程序集,不会被自动加载。
【可具体参考我的博文:/article/7042901.html】
2)GetExecutingAssembly,GetCallingAssembly和GetEntryAssembly(Assembly静态方法):
GetExecutingAssembly:获取该方法所在方法的程序集自身。
GetCallingAssembly:获取调用该方法所在方法的程序集。
GetEntryAssembly:
【举例】
假设有一个类库A,其中有一个方法Fun使用了GetExecutingAssembly,那么它会调用Fun所在方法的程序集。
如果A被B类库使用,且B中的方法Call调用了A的Fun,且Fun中使用了GetCallingAssembly,那么它先获取调用Fun的方法(即Call),然后获取Call所在的程序集。
【总结】一般前者是当前项目使用,后者往往是在发布成类库之后动态供其它程序使用,获取其它程序的Assembly等信息。
3)获取整个Assembly中所有的类情况:
3.1)先获取一个Assembly实例(参考方法2)。
3.2)然后使用GetTypes获取全部的Type。
4)获取某个特定命名空间下的全部类:
无直接做法,建议使用方法3的结果对NameSpace属性进行判断(是否包含某个特定命名空间名等)
5)获取当前Assembly的路径:
5.1)先获取一个Assembly实例(参考方法2)。
5.2)然后Location属性。
备注:Location将包含完整路径和文件名(即便文件名做了修改也无妨)。
1) Load,LoadFrom和LoadFile:
Load:只加载本地程序集中指定的类(通过命名空间等方式指定)。
LoadFrom:通过外部相对或者绝对路径加载指定的类库或者Exe等文件,且重复加载相同程序集仅第一次有效;如果该程序集引用其它程序集,会被自动加载。
LoadFile:通过外部相对或者绝对路径加载指定的类库或者Exe等文件,重复加载相同程序集最后一次有效;如果该程序集引用其它程序集,不会被自动加载。
【可具体参考我的博文:/article/7042901.html】
2)GetExecutingAssembly,GetCallingAssembly和GetEntryAssembly(Assembly静态方法):
GetExecutingAssembly:获取该方法所在方法的程序集自身。
GetCallingAssembly:获取调用该方法所在方法的程序集。
GetEntryAssembly:
【举例】
假设有一个类库A,其中有一个方法Fun使用了GetExecutingAssembly,那么它会调用Fun所在方法的程序集。
如果A被B类库使用,且B中的方法Call调用了A的Fun,且Fun中使用了GetCallingAssembly,那么它先获取调用Fun的方法(即Call),然后获取Call所在的程序集。
【总结】一般前者是当前项目使用,后者往往是在发布成类库之后动态供其它程序使用,获取其它程序的Assembly等信息。
3)获取整个Assembly中所有的类情况:
3.1)先获取一个Assembly实例(参考方法2)。
3.2)然后使用GetTypes获取全部的Type。
4)获取某个特定命名空间下的全部类:
无直接做法,建议使用方法3的结果对NameSpace属性进行判断(是否包含某个特定命名空间名等)
5)获取当前Assembly的路径:
5.1)先获取一个Assembly实例(参考方法2)。
5.2)然后Location属性。
备注:Location将包含完整路径和文件名(即便文件名做了修改也无妨)。
相关文章推荐
- Java基础知识 十七 (关于反射一些方法的总结)
- 关于.net中反射的一些个人总结
- 黑马程序员-关于反射的一些小总结
- 黑马程序员-关于反射的一些小总结
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 关于一些排序算法的个人总结(初学)
- 关于对include包含类声明或定义的文件的一些总结
- 关于C++中的虚拟继承的一些总结
- 【关于ASP.NET在IIS一些问题的经验总结】
- 关于boost库性能与安全的一些总结
- 关于java中的多态的一些小总结
- 关于C++中的虚拟继承的一些总结
- 关于用 ThreadLocal 管理 Connection 的一些总结
- 关于开发简易搜索引擎的一些总结和思考
- 关于网络分层,和网络安全的一些总结
- 一些关于Java面向对象学习、培训机构培训、大学生活状态的感悟和总结
- 关于电子相册功能的一些总结
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
- 关于HTTP状态码的一些总结(一)
- 关于C++中的虚拟继承的一些总结