[netMarketing类库] reflectHelper类:反射功能辅助类

命名空间:netMarketing.reflect.reflectHelper

功能:反射功能辅助类


功能详细说明:

这个类封装了反射调用其它dll的函数与窗体的一些方法。


常用函数列表

/// 创建对象实例
public static T CreateInstance<T>(string fullName, string assemblyName)
/// 创建对象实例
public static T CreateInstance<T>(string assemblyName, string nameSpace, string className)
/// 根据资源类获取资源名称和类型
public static SortedList<string, string> GetResourceNames(Type p_ResourcesType)
/// 由程序集反射出Form并且显示出来
public static void CreateFormAndShow(string dllPathName, string AssemblyName,
            object StructuralParameters = null, bool isModeShow = true)
/// 由窗体类名返回Dock窗体
public static DockContent getDockForm(string fullClassName)
/// 由窗体类名返回Dock窗体
public static myForm getDockForm(string assemblyName, string fullClassName, object[] StructuralParameters = null)
/// 根据指定的程序集和类全名,返回对象实例(适合Form不带参数)
public static object createObjectInstance(string AssemblyName, string objFullName)
/// 根据指定的程序集和类全名、窗体参数,返回对象实例(适合Form带参数)
public static object createObjectInstance(string AssemblyName, string objFullName,string param)
/// 在程序目录下搜索全部dll, 根据指定的类全名,返回对象实例
public static object createObjectInstance(string objFullName)
 /// 从DLL文件中查找指定的对象定义
private static Type getObjectType(string dllFile, string objFullName)
/// 获取类中的属性值
public string GetModelValue(string FieldName, object obj)
/// 设置类中的属性值
public bool SetModelValue(string FieldName, string Value, object obj)


勇哥这里给个简单的例子,演示一下GetModelValue函数的用法:

 listBox1.Items.Clear();
            var sb1 = new StringBuilder();
            try
            {
                var v = ObjDevice.Instance.pClient.sql.readBatteryInfo("AJ4");
                var vAry = v.GetType();
                var pary = vAry.GetProperties();
                foreach (var m in pary)
                {
                    listBox1.Items.Add(string.Format("{0}: {1}",
                        m.Name, GetModelValue(m.Name, v)
                        ));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


其中readBatteryInfo()读取数据库中的内容,返回一个tabBatteryInfo类。

 public tabBatteryInfo readBatteryInfo(string batteryBreedName)
        {
            if (!isConnect) return null;
            cmd.CommandText =
                string.Format("select top 1 * from guangyu.dbo.batteryInfo where 电池型号={0}",read电池型号IDbyName( batteryBreedName));
            DataSet set = new DataSet();
            set.Tables.Clear();
            myDataAdapter.Fill(set);
            if (set.Tables[0].Rows.Count > 0)
            {
                var row = set.Tables[0].Rows[0];
                return EntityHelper.GetEntityListByDT<tabBatteryInfo>(row, null);
            }
            return null;
        }

tabBatteryInfo类是数据库一个表的实体类。

image.png

因此,开头的代码的需求,就是要把这个数据库查询结果,写到控件里显示出来。

这就需求反射取得类的一个实例的属性名字,以及它的值。

image.png


--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

返回类库功能说明目录


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864