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

nhl_7 2011-10-15 01:50:31
新建一个程序域,在里面进行反射。注意反射得到的程序集绝对不能给当前程序域

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);
}
...全文
150 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
LoadFile跟LoadFrom跟Load是完全不同的,不要混用。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧