C#反射

作者: 成熟的青菜 | 来源:发表于2018-01-20 13:56 被阅读2次

根据moduleName反射到某个类某个方法

      [WebMethod(Description = "得到报表数据")]
      [SoapHeader("Credentials")]
      public DataSet GetRptData(string moduleName, DataSet dsCondition, string userNo)
      {
          DataSet ds = new DataSet();
          Type type = Type.GetType("Regentsoft.Plugin.Report.Bll." + moduleName + ",Regentsoft.Plugin.Report.Bll");
          if (type == null)
              return ds;

          object dObj = Activator.CreateInstance(type);
          //属性
          System.Reflection.PropertyInfo property = type.GetProperty("UserNo");
          property.SetValue(dObj, userNo, null);
          System.Reflection.PropertyInfo property1 = type.GetProperty("DsCondition");
          property1.SetValue(dObj, dsCondition, null);

          //获取方法的信息
          System.Reflection.MethodInfo method = type.GetMethod("Calculate");
          //调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值
          System.Reflection.BindingFlags flag = System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance;
          //调用方法,用一个object接收返回值
          object obj = method.Invoke(dObj, flag, null, null, null);

          if (obj != null)
          {
              ds = (DataSet)obj;
          }

          return ds;
      }

转换成DataView操作Datatable

       /// <summary>
        /// 取得选中的记录
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="selectFieldName">选择字段名</param>
        /// <returns></returns>
        public static DataTable GetDataTableSelectData(DataTable dt, string selectFieldName)
        {
            if (dt == null)
                return null;

            DataView dv = new DataView(dt);
            dv.RowFilter = string.Format("{0} = 1", selectFieldName);

            return dv.ToTable();
        }

![B(IRRLH7`I$M}YLIC%GS(9.png

相关文章

  • C#它山之石

    C# 使用反射技术实例化指定的类C#之玩转反射Reactive Extensions入门IoC solutions...

  • Unity 之如何写出强壮的代码

    【反射】 Unity C#基础之 反射反射,程序员的快乐 Unity C#基础之 特性,一个灵活的小工具 【多线程...

  • 目录 - C#

    总目录 C# 第01局:泛型 C# 第02局:反射 C# 第03局:特性 C# 第04局:委托 C# 第05局:事...

  • C#特性(Attribute)-现学现用

    前言 想要灵性的使用C#反射机制,特性(Attribute)的使用是必不可少的。 C# 特性(Attribute)...

  • C#反射

    C# 反射(Reflection) 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模...

  • C#反射

    什么是元数据,什么是反射 程序是用来处理数据的,文本和特性都是数据,而程序本身(类的本身和BLC中的类) 这些也是...

  • C#反射

    根据moduleName反射到某个类某个方法 转换成DataView操作Datatable ![B(IRRLH7`...

  • C#反射

    注意:C#本身已经时候用了反射!!!! 以下了解即可不过,反射可以拿到类中private的字段,这个对编程则有用...

  • Swift中的反射Mirror

    Swift中的反射Mirror [TOC] 前言 Mirror是Swift中的反射机制,对于C#和Java开发人员...

  • C# 反射 typeof GetType

    一、typeof GetType 参考Unity C# 游戏开发 反射 Reflection 案例讲解(图文详细,...

网友评论

    本文标题:C#反射

    本文链接:https://www.haomeiwen.com/subject/cvhtaxtx.html