思路话语

。Arlen:思想有多远你就能走多远...

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

动态加载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));
        }

posted on 2007-05-30 19:57  Arlen  阅读(659)  评论(0编辑  收藏  举报

导航