数据库字段如下
F_vchManuText F_vchClassName F_vchClassDetail F_vchClassPar
业务处理 getTest.dll getTest.getTest show:lgparam,mdiparent,1字段说明:F_vchManuText功能模块名; F_vchClassName所对应的DLL名;F_vchClassDetail命名空间及类;F_vchClassPar 方法名及对应参数getTest.dll 的接口方法如下:
public void show(NetDataCommon.LoginParam lgParam,System.Windows.Forms.Form mdiparent,int intType)
参数说明:NetDataCommon.LoginParam lgParam 是我用户登录信息类
System.Windows.Forms.Form mdiparent 当前MDI窗体
int intType 类别参数请教各位在程序里通过记录集,动态调用getTest.dll该怎么调用啊,请指点一二啊!!
F_vchManuText F_vchClassName F_vchClassDetail F_vchClassPar
业务处理 getTest.dll getTest.getTest show:lgparam,mdiparent,1字段说明:F_vchManuText功能模块名; F_vchClassName所对应的DLL名;F_vchClassDetail命名空间及类;F_vchClassPar 方法名及对应参数getTest.dll 的接口方法如下:
public void show(NetDataCommon.LoginParam lgParam,System.Windows.Forms.Form mdiparent,int intType)
参数说明:NetDataCommon.LoginParam lgParam 是我用户登录信息类
System.Windows.Forms.Form mdiparent 当前MDI窗体
int intType 类别参数请教各位在程序里通过记录集,动态调用getTest.dll该怎么调用啊,请指点一二啊!!
解决方案 »
- byte[] msg = Encoding.GetEncoding("gb2312").GetBytes("sendTo Method test");是什么意思
- 敢问怎么能实现多表更新呢?
- 后台无法获取前台服务器控件
- 探讨color.Transparent.困惑好久了。大家可以去调试下
- c#
- CurrencyManager.AddNew 的奇怪问题,帮忙!!
- 在线等关于WindowsMediaPlayer控件的问题
- c\s架构下操作数据库的问题
- 有关函数的问题
- 请问C#的函数参数如何像C++的函数的引用参数一样??
- Dataedit在程序运行后显示周几的的地方出现“星星星星星星星”
- ShowDialog()打开窗口,如何返回值?
参看
http://blog.csdn.net/knight94/archive/2006/04/10/657527.aspx
System.Reflection.Assembly ClassName; //组件名称
System.Type ClassType; //利用类型的命名空间和名称获得类型
Object Obj; //实例化类型,或得对象
System.Reflection.MethodInfo ClsMeth; //类型中方法
Object[] ClsParam=null; //参数
string[] TempParam; //临时参数
string MethName; //方法名称
string DllFilePath; //DLL路经
string strSql; //SQL语句
int i;strSql="select F_nId,F_vchClassName,F_vchClassDetail,F_vchClassPar from YT_MENU where F_nId="+ModuleID;DataSet ds=new DataSet();
ds=NetDataCommon.SqlHelper.ExecuteDataset(lgParam.StrDbconn,CommandType.Text,strSql);if(ds.Tables[0].Rows.Count>0)
{
DllFilePath=Application.StartupPath.ToString()+"\\"+ds.Tables[0].Rows[0][1].ToString();
ClassName=Assembly.LoadFile(DllFilePath);
ClassType=ClassName.GetType(ds.Tables[0].Rows[0][2].ToString(),false,true); //加载组件模块
Obj=System.Activator.CreateInstance(ClassType);
MethName=ds.Tables[0].Rows[0][3].ToString().Substring(0,4);
TempParam=ds.Tables[0].Rows[0][3].ToString().Substring(5,ds.Tables[0].Rows[0][3].ToString().Length-5).Split(',');
ClsMeth=ClassType.GetMethod(MethName); for(i=0;i<TempParam.Length;i++)
{
if(ClsParam==null)
{
ClsParam=new object[1];
}
else
{
ClsParam=new object[ClsParam.Length+1];
}
switch(TempParam[i].ToString().ToLower())
{
case "lgparam":
ClsParam[ClsParam.Length-1]=lgParam;
case "mdiparent":
ClsParam[ClsParam.Length-1]=System.Windows.Forms.Form.ActiveForm.Name;
default:
ClsParam[ClsParam.Length-1]=TempParam[i];
}
}
ClsMeth.Invoke(Obj,ClsParam);
}其中lgParam已经实例化好的了