知识大全 C#利用反射简化给类字段赋值

Posted

篇首语:人们视需要为事物发生之“因”,其实,它往往是事物发生之“果”。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#利用反射简化给类字段赋值相关的知识,希望对你有一定的参考价值。

C#利用反射简化给类字段赋值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这个例子主要的思路是建立一个类和数据库查询语句的字段结构是一致的

  然后利用反射 直接用数据字段名称进行拼凑 给类对象的字段进行赋值

   类的定义

  namespace CCB_Donet ClassFolder public class FieldRuleInfo public string gStrFNo; public string gStrFName; public string gStrFLock; public string gStrFCaption; public string gStrFType; public string gStrFMust; public string gStrFMin; public string gStrFMax; public string gStrFDefault; public string gStrFDate; public string gStrFDB; public string gStrFAllow; public string gStrFDisallow; public string gStrFSB; public string gStrFBig; public string gStrFSmall; public string gStrFInputMethod; public string gStrFCHK; public string gStrFRelation; public string gStrFDesc; public string gStrFSecond; public string gStrFQC; public string gStrFException; public string gStrFASupp; public string gStrFYQH; public string gStrFPos; public string gStrFStar; public string gStrFSave; public string gStrFAddress; public string gStrFLblColor; public string gStrFIsCheckList;

  #region 加载字段规则 private bool m_GetRule() string strSQL = ""; DataTable dtGet = null;

  #if(DEBUG) try #endif

  if (Common gIntTypeOrder == ) strSQL = "select A FNo A FName A FLock A FCaption A FType " + "A FMust A FMin A FMax A FDefault A FDate rn" + "A FDB A FAllow A FDisallow A FSB A FBig A FSmall A FInputMethod " + "A FCHK A FRelation A FDesc A FSecond rn" + "A FQC A FException A FASupp A FYQH A FPos A FStar A FSave "+ "A FAddress A FLblColor A FIsCheckList from P_Field_Rule A rn" + "INNER JOIN P_Field_Initial B ON A FNo=B FNo rn" + "where A FormType= AND B FSection= AND " + "(B FRegion = OR B FRegion = ) ORDER BY A FOrder"; else strSQL = "select A FNo A FName A FLock A FCaption A FType "+ "A FMust A FMin A FMax A FDefault A FDate rn" + "A FDB A FAllow A FDisallow A FSB A FBig A FSmall "+ "A FInputMethod A FCHK A FRelation A FDesc A FSecond rn" + "A FQC A FException A FASupp A FYQH A FPos A FStar "+ "A FSave A FAddress A FLblColor A FIsCheckList "+ "from P_Field_Rule A rn" +  

  "INNER JOIN P_Field_Initial B ON A FNo=B FNo rn" +

  "where A FormType=" + Common gIntFormType ToString() +

  " AND B FSection= AND (B FRegion=" + Common gIntRegion ToString() +

  " OR B FRegion= ) ORDER BY A FOrder";

  

  dtGet = DB GetDataTableBySQL(strSQL);

  if (dtGet Rows Count <= )

  

  Common ShowMessage("字段规则表没有数据 请马上联系软件工程师!" MessageBoxIcon Error);

  return false;

  

  //获得类信息 为下面的反射调用做准备

  Type oType = Type GetType("CCB_Donet ClassFolder FieldRuleInfo");

  //生成类对象数组 和数据库记录个数是一致的

  mMainFieldRule = new FieldRuleInfo[dtGet Rows Count];

  for (int i = ; i < dtGet Rows Count; i++)

  

  //这里使用反射动态为FieldRuleInfo字段赋值数据

  mMainFieldRule[i] = new FieldRuleInfo();

  for (int j = ; j < dtGet Columns Count; j++)

  

  //这里直接获取类的字段名称 然后把数据库里对应字段的值赋值给它

  FieldInfo fieldInfo = oType GetField("gStr" + dtGet Columns[j] ColumnName

  BindingFlags Public | BindingFlags NonPublic | BindingFlags Instance

  | BindingFlags Static);

  fieldInfo SetValue(mMainFieldRule[i] dtGet Rows[i][j] ToString());

  

  

  return true;

  #if(DEBUG)

  

  catch (Exception ex)

  

  return false;

  MyLog WriteErrLog("frmDE m_GetRule" ex Message);

  

  finally

  

  dtGet = null;

  

  #endif

  

cha138/Article/program/net/201311/14047

相关参考

知识大全 使用Java5特性来简化反射编程

使用Java5特性来简化反射编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!//Nextdoal

知识大全 类反射简化Struts应用程序的开发(二)

类反射简化Struts应用程序的开发(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  三如何

知识大全 类反射简化Struts应用程序的开发(一)

类反射简化Struts应用程序的开发(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一St

知识大全 C#反射浅析

C#反射浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先了解C#反射的概念反射是一个运行库类

知识大全 c#学习体会:使用 ref 和 out 传递数组

  c#学习体会:使用ref和out传递数组(downmoon)希望与大家分享与所有的out参数一样在使用数组类型的out参数前必须先为其赋值即必须由接受方为其赋值例如public stat

知识大全 C#反射方法学习总结

C#反射方法学习总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文介绍今天把C#反射方

知识大全 利用js进行赋值实现js混淆代码还原

  方法一利用IE开发人员工具(IE开始已经自带IE以前需要下载安装IEDeveloperToolbar)进行反混淆本人常用Chrome但是没有找到利用Chrome自带的开发人员工具去实现反混淆的方法

知识大全 C#反射取值 源代码

C#反射取值源代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ///<summary&

知识大全 c# 反射的使用方法

  在网上查找了不少的资料可以说大同小异概念性的东西网上一搜一堆今天把反射的东西整理了一下供大家使用我保证我这里是最全面的东西当然也是基础的东西在学好了这一切的基础上大家可以学习反射的具体插件等应用老

知识大全 MyEclipse 里面给类加注释的时候,会出现 @author Administrator,怎么样才能把Administrator改成我的名字

MyEclipse里面给类加注释的时候,会出现@authorAdministrator,怎么样才能把Administrator改成我的名字  以下文字资料是由(本站网www.lis