栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何以所有引用递归地将程序集加载到AppDomain?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何以所有引用递归地将程序集加载到AppDomain?

您需要先调用,

CreateInstanceAndUnwrap
然后代理对象才能在外部应用程序域中执行。

 class Program{    static void Main(string[] args)    {        AppDomainSetup domaininfo = new AppDomainSetup();        domaininfo.Applicationbase = System.Environment.CurrentDirectory;        Evidence adevidence = AppDomain.CurrentDomain.Evidence;        AppDomain domain = AppDomain.CreateDomain("MyDomain", adevidence, domaininfo);        Type type = typeof(Proxy);        var value = (Proxy)domain.CreateInstanceAndUnwrap( type.Assembly.FullName, type.FullName);        var assembly = value.GetAssembly(args[0]);        // AppDomain.Unload(domain);    }}public class Proxy : MarshalByRefObject{    public Assembly GetAssembly(string assemblyPath)    {        try        { return Assembly.LoadFile(assemblyPath);        }        catch (Exception)        { return null; // throw new InvalidOperationException(ex);        }    }}

另外,请注意,如果您使用它,则

LoadFrom
可能会遇到
FileNotFound
异常,因为程序集解析器将尝试在GAC或当前应用程序的bin文件夹中查找要加载的程序集。
LoadFile
而是使用加载任意程序集文件-
但请注意,如果执行此操作,则需要自己加载所有依赖项。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号