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

这篇博客介绍了netMarketing.reflect.reflectHelper类,它封装了反射调用dll函数和窗体的方法。通过示例展示了如何利用GetModelValue函数获取数据库查询结果(tabBatteryInfo类)的属性值,并将结果显示在控件中。内容涵盖了类实例创建、资源获取、窗体显示和属性读写等操作。
摘要由CSDN通过智能技术生成

命名空间:netMarketing.reflect.reflectHelper

功能:反射功能辅助类

功能详细说明:

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

常用函数列表:/// 创建对象实例

public static T CreateInstance(string fullName, string assemblyName)

/// 创建对象实例

public static T CreateInstance(string assemblyName, string nameSpace, string className)

/// 根据资源类获取资源名称和类型

public static SortedList 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(row, null);

}

return null;

}

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

dd195993328e054d6150656e70aff54a.png

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

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

7b7e71bf06caba15255958c6e7840a83.png

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

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

收藏 | 0点赞 | 0打赏作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值