在新应用程序域上创建动态程序集

时间:2015-07-20 20:36:54

标签: c# reflection reflection.emit

我正在尝试在单独的应用程序域上创建动态程序集,如下所示:

string webProfilesNamespace = ConfigurationManager.AppSettings["Profiles.Web.Namespace"];
AssemblyName webAName = new AssemblyName(webProfilesNamespace);
AppDomain webDomain = AppDomain.CreateDomain("WebDomain");
AssemblyBuilder webAsmBuilder = webDomain.DefineDynamicAssembly(webAName, AssemblyBuilderAccess.RunAndSave);

问题是,当我致电DefineDynamicAssebly时,我一直收到此错误:

  

在程序集'mscorlib中输入'System.Reflection.Emit.AssemblyBuilder',   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'是   没有标记为可序列化。

为了能够在新创建的应用程序域上定义动态程序集,我该怎么做?

1 个答案:

答案 0 :(得分:2)

在新的应用域中调用DefineDynamicAssembly。也许使用AppDomainCallback来做到这一点。我忘记了调用这个方法的方法。