加载程序集

AssMedicalAdvice = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "Inscription.MedicalAdvice.Client.dll"));

1.调用静态函数,静态函数不需要实例化类,所以methodInfo.Invoke第一个参数为null

 type = AssClinicalPaths.GetType("Inscription.ClinicalPaths.Client.CommonCtl.RasonV2.CP_RASON_GridFormV2");
methodInfo = type.GetMethod("Test");
methodInfo.Invoke(null, new string[] { });

2.获取静态属性

 type = AssClinicalLib.GetType("Inscription.ClinicalPaths.Lib.LibManager");
string strDbType = type.GetProperty("strDBType").GetValue(null, null).ToString();
string strDbConn = type.GetProperty("strDBConn").GetValue(null, null).ToString();

3.获取实例属性

 type = AssMedicalLib.GetType("Inscription.MedicalAdvice.Object.BaseSreverManager");

 object objBaseServerManager = type.GetProperty("sBaseSreverManager").GetValue(null, null);
strDbType = type.GetProperty("DBType").GetValue(objBaseServerManager, null).ToString();
strDbConn = type.GetProperty("DBConn").GetValue(objBaseServerManager, null).ToString();

4.调用非静态函数,需要获取PathManager类的实例化。

  或者使用Activator.CreateInstance(type)实例化类

 type = AssClinicalPaths.GetType("Inscription.ClinicalPaths.Lib.PathManager");
//Object objPathManager = Activator.CreateInstance(type);
Object objPathManager = type.GetProperty("pathManager").GetValue(null, null);
methodInfo = type.GetMethod("in_RunTimeObject");
methodInfo.Invoke(objPathManager, new string[] { });

PS:反射有个有趣的特性,就是能够访问私有的字段,属性和方法。

有点类似代码级别的Hack行为。不知道这算不算一个好的OO设计,毕竟他破坏了类的封装性。

最新文章

  1. react-echarts之折线图的显示
  2. Unity Shaders 第一个默认程序分析
  3. Spark Streaming源码解读之数据清理内幕彻底解密
  4. Jquery用法
  5. 系统隐式 Intent
  6. Nhiberate (二) 搭项目
  7. ACM之Java速成(2)
  8. Oracle11.2新特性之listagg函数 (行列转换)
  9. hdu 2489 最小生成树状态压缩枚举
  10. asp.net推送
  11. 设计模式六大原则——迪米特法则(LoD)
  12. hibernate通过配置文件生成数据库信息
  13. C# 网络编程 Part.1
  14. Storm InvalidTopologyException: null
  15. mysql select column default value if is null
  16. H5分享功能
  17. promise学习总结
  18. opencv 替换图像中的一部分
  19. curl wget 不验证证书进行https请求【转】
  20. js递归函数使用介绍

热门文章

  1. [loj #6003]「网络流 24 题」魔术球 二分图最小路径覆盖,网络流
  2. vs2008下Error LINK2005: already defined in ...的一种解决方式
  3. [scrapy] spider object has no attribute '_rules'
  4. [xampp] /usr/bin/env: php: No such file or directory
  5. HDU 2586.How far away ?-离线LCA(Tarjan)
  6. HDU 2551 竹青遍野(循环,水)
  7. 大型vue单页面项目优化总结
  8. 使用IIFE(立即执行函数)让变量私有化
  9. [CTSC2018]混合果汁(二分答案+主席树)
  10. 【分块】【线段树】bzoj3212 Pku3468 A Simple Problem with Integers