当前位置: 代码迷 >> ASP.NET >> 超难有关问题(对小弟我)
  详细解决方案

超难有关问题(对小弟我)

热度:291   发布时间:2013-02-26 00:00:00.0
超难问题(对我),高手请进
怎么把一个实体类中所有的属性读出来,而且把属性的值也读出来?

------解决方案--------------------------------------------------------
用反射吧
------解决方案--------------------------------------------------------
利用反射,请参考:string sClass = CCConvert.GetRequsetQueryString( "ClassName "); string sMethodName = "GetReports "; //得到类 Type oType = System.Type.GetType( "CallCenter.Report.Class. "+sClass); if(oType == null ) { Response.Write( "类: "+sClass + "不存在! "); return; } //实现化 object oInst = Activator.CreateInstance(oType); if(oInst ==null) { Response.Write( "类: "+sClass + "不存在! "); return; } //得到方法 MethodInfo oMethod = oType.GetMethod(sMethodName); if(oMethod ==null) { Response.Write( "方法: "+ sMethodName + "不存在! "); return ; } int iParamsCount = oMethod.GetParameters().Length; string sParams = CCConvert.GetRequsetQueryString( "Params "); string[] ary = sParams.Split( ', '); if(ary.Length !=iParamsCount) { Response.Write(String.Format( "传入的参数的个数{0}不等于该方法{1}实际的参数个数{2},请检查 ",ary.Length.ToString(),oMethod.Name,iParamsCount.ToString())); return; } //得到属性 PropertyInfo Pro = oType.GetProperty( "Title "); this.sTitle = Pro.GetValue(oInst,null).ToString(); FieldInfo fldFileName = oType.GetField( "sExcelFileName "); string sHTML = oMethod.Invoke(oInst,BindingFlags.Public,Type.DefaultBinder,ary,null).ToString(); string sFileName = fldFileName.GetValue(oInst).ToString(); //Response.Write(sFileName);
------解决方案--------------------------------------------------------
UP
------解决方案--------------------------------------------------------
反射
------解决方案--------------------------------------------------------
Class1 class1 = new Class1();
PropertyInfo[] arrayinfo = class1.GetType().GetProperties();
foreach (PropertyInfo info in arrayinfo)
{
object value = info.GetValue(class1, null);
}
------解决方案--------------------------------------------------------
mark
  相关解决方案