现在的位置: 首页 > 综合 > 正文

反射的使用

2012年12月06日 ⁄ 综合 ⁄ 共 1262字 ⁄ 字号 评论关闭

//2003-1-9 尤建波
??//对面板控制的晚编连
???System.Reflection.Assembly assem;
???assem=System.Reflection.Assembly.Load("OceanSoft.AssLoadXml");
???
???string TypeName="";
???Type helloType ;
???Type[] MyType =assem.GetTypes();
???foreach (Type m in MyType)
???{
????TypeName=m.Name.ToString();
????if(TypeName==mItem["PanelLinkUrl"].ToString().Trim())//动态调用类
????{
?????helloType = m;
?????Object obj = Activator.CreateInstance(helloType);
????
//?????//设置属性值 对应哪个面板
//?????PropertyInfo pPropertyDll3 = helloType.GetProperty("UserType");
//?????//赋值
//?????Object[] argsProperty3;
//?????argsProperty3=new Object[1];?
//?????argsProperty3[0]=mItem["PanelLinkUrl"].ToString().Trim();
//?????pPropertyDll3.SetValue(obj,argsProperty3[0],null);

?????//设置属性值 用户的guid
?????PropertyInfo pPropertyDll1 = helloType.GetProperty("UserGUID");
?????//赋值
?????Object[] argsProperty1;
?????argsProperty1=new Object[1];?
?????argsProperty1[0]=Session["WAF_UserGuid"].ToString();
?????pPropertyDll1.SetValue(obj,argsProperty1[0],null);

?????//调用函数(返回值)
?????MethodInfo pMethod1 = helloType.GetMethod("IGetData");

?????Object[] argsMax = new Object[0];????????????? //传入的参数
?????Object[] argsReturnMax = new Object[1];???//返回参数的个数
?????argsReturnMax[0]=pMethod1.Invoke(obj,argsMax);? //返回值
???
?????strXml=(string) argsReturnMax[0];
????}
???}
??doc.LoadXml(strXml);

??//end

抱歉!评论已关闭.