当前位置:  开发笔记 > 编程语言 > 正文

将DLL加载到单独的AppDomain中

如何解决《将DLL加载到单独的AppDomain中》经验,为你挑选了1个好方法。

我想动态加载一个或多个DLL,以便它们使用与我的主应用程序不同的安全性或基本路径运行.如何将这些DLL加载到单独的AppDomain中并从中实例化对象?



1> Jon Turner..:

进一步来说

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);

如果一切正常(没有抛出异常),您现在已将TypeIWantToLoad的实例加载到新域中.您拥有的实例实际上是一个代理(因为实际对象位于新域中),但您可以像使用普通对象一样使用它.

注意:据我所知,TypeIWantToLoad必须从MarshalByRefObject继承.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有