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

动态加载dll,并创建类和实例

2011年10月31日 ⁄ 综合 ⁄ 共 779字 ⁄ 字号 评论关闭
动态加载DLL,创建的类型无法转换成子类,但是如果不是动态DLL,而是象如下这种方式,则可以转换。

动态加载DLL创建子类实例后转换成子类的困惑:
http://www.cnblogs.com/xuefeng/archive/2007/05/25/759534.html

http://www.cnblogs.com/Arlen/archive/2007/05/31/766836.html

非动态加载DLL可以成功转换:

string typeStr = "Tencent.Itil.CFMS.Bll.{0},Tencent.Itil.CFMS.Bll";
        Type type;
        
try
        
{
            type 
= Type.GetType(String.Format(typeStr, this.DropDownList1.SelectedValue));

            CILogicBase logic 
= (CILogicBase)Activator.CreateInstance(type);

            ServerLogic obj 
= (ServerLogic)logic; //此时可以成功转换成子类
            string result = logic.Add(ci);
            Response.Write(result);
        }

        
catch //如果没有定义相应配置项的逻辑类则调用默认基类中的方法
        {
            CILogicBase logic 
= new CILogicBase();
            Response.Write(logic.Add(ci));
        }

抱歉!评论已关闭.