当前位置:编程学习 > C#/ASP.NET >>

新建程序域(AppDoMain)内如何用反射(Reflection)?

新建一个程序域,在里面进行反射。注意反射得到的程序集绝对不能给当前程序域

        string path = "xxxxxxxxxxxxxx";
        private void button1_Click(object sender, EventArgs e)
        {
            AppDomain.CurrentDomain.SetupInformation.LoaderOptimization = LoaderOptimization.SingleDomain;
            AppDomain dom = AppDomain.CreateDomain("dom", null, AppDomain.CurrentDomain.SetupInformation);

            //程序域dom内的反射
            dom.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);//反射对象用了反序列化
            //

            //
            //当前程序域内的反射
            //
            //AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);//反射对象用了反序列化
            //Assembly ass = Assembly.Load(path);
            //Form f=ass.CreateInstance("xx.yy") as Form;
            //f.Show();
        }

        Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
        {
            return Assembly.LoadFile(path);
        }
--------------------编程问答-------------------- LoadFile跟LoadFrom跟Load是完全不同的,不要混用。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,