ExecuteMethod.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using com.hnshituo.core.webapp.vo;
  8. namespace MeterSceneLibrary
  9. {
  10. public class ExecuteMethod
  11. {
  12. /// <summary>
  13. /// 调用并执行指定类里面的函数
  14. /// </summary>
  15. /// <param name="nameSpace">命名空间</param>
  16. /// <param name="className">需要调用的类名(包含其命名空间)</param>
  17. /// <param name="methodName">需要调用的方法名</param>
  18. /// <param name="parameters">传递的参数值</param>
  19. /// <return>返回值</return>
  20. public RESTfulResult<T> GetAndExecuteMethod<T>(string nameSpace, string className, string methodName, object[] parameters = null)
  21. {
  22. RESTfulResult<T> rm = new RESTfulResult<T>();
  23. string strCls = nameSpace + "." + className;
  24. try
  25. {
  26. var type = Type.GetType(strCls);
  27. if (type == null)
  28. {
  29. rm.Succeed = false;
  30. rm.ResultMessage = "类[" + strCls + "]不存在";
  31. }
  32. var obj = type.Assembly.CreateInstance(strCls);
  33. //调用其方法
  34. var method = type.GetMethod(methodName);
  35. if (method == null)
  36. {
  37. rm.Succeed = false;
  38. rm.ResultMessage = "类[" + strCls + "]不存在方法[" + methodName + "]";
  39. }
  40. //*/
  41. //执行方法
  42. rm.Data = (T)method.Invoke(obj, parameters);
  43. rm.Succeed = true;
  44. }
  45. catch (Exception ex)
  46. {
  47. rm.Succeed = false;
  48. rm.ResultMessage = "类[" + strCls + "]的方法[" + methodName + "]执行失败:" + ex.Message;
  49. }
  50. return rm;
  51. }
  52. }
  53. public class rtInfo
  54. {
  55. /// <summary>
  56. /// 为true则执行成功了,为false则未成功
  57. /// </summary>
  58. public bool result { get; set; }
  59. /// <summary>
  60. /// 执行后返回的信息
  61. /// </summary>
  62. public string resultInfo { get; set; }
  63. /// <summary>
  64. /// 是否报错导致的false,如果这里未true则认为是报错了
  65. /// </summary>
  66. public bool isError { get; set; }
  67. /// <summary>
  68. /// 为1时提示取样
  69. /// </summary>
  70. public string message { get; set; }
  71. /// <summary>
  72. /// 警告标识
  73. /// </summary>
  74. public bool isWarn { get; set; }
  75. /// <summary>
  76. /// 警告标识
  77. /// </summary>
  78. public string WarnContent { get; set; }
  79. /// <summary>
  80. /// 求助标识
  81. /// </summary>
  82. public bool isHelp { get; set; }
  83. }
  84. }