3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
進(jìn)一步來(lái)說(shuō)
AppDomain domain = AppDomain.CreateDomain("New domain name");
//Do other things to the domain like set the security policy
string pathToDll = @"C:\myDll.dll"; //Full path to dll you want to load
Type t = typeof(TypeIWantToLoad);
TypeIWantToLoad myObject = (TypeIWantToLoad)domain.CreateInstanceFromAndUnwrap(pathToDll, t.FullName);
如果一切正常(沒(méi)有引發(fā)異常),您現(xiàn)在將TypeIWantToLoad實(shí)例加載到新域中。您擁有的實(shí)例實(shí)際上是一個(gè)代理(因?yàn)閷?shí)際對(duì)象位于新域中),但是您可以像使用普通對(duì)象一樣使用它。
注意:據(jù)我所知,TypeIWantToLoad必須從MarshalByRefObject繼承。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
您可以使用AppDomain.CreateInstance方法來(lái)執(zhí)行此操作。您需要調(diào)用ObjectHandle的Unwrap方法,該方法將返回以獲取實(shí)際對(duì)象。
- 3 回答
- 0 關(guān)注
- 959 瀏覽
添加回答
舉報(bào)