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

标签 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 时,我不断收到此错误:

Type 'System.Reflection.Emit.AssemblyBuilder' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.

我需要做什么才能在新创建的应用程序域上定义动态程序集?

最佳答案

在新应用域中调用DefineDynamicAssembly。也许可以使用 AppDomainCallback 来做到这一点。我忘了这个方法叫什么了。

关于c# - 在新应用程序域上创建动态程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525881/

相关文章:

Java 泛型和反射

c# - 使用泛型 T 的 DefineMethod

c# - Reflection.Emit 实现接口(interface)的泛型方法约束

c# - IL 使用 Reflection.Emit 调用带有 params object[] 参数的方法

c# - 如何在 matlab 中删除对 .net 程序集的引用

c# - 手动实现UpdatePanel

python - 如何返回属性的默认值?

scala - 是否可以获取运行时实例的 typeTag?

c# - 如何将 C .DLL 文件导入 C# Windows 窗体应用程序并调用其在 header 中定义的函数?

c# - SQL将unicode编码的varbinary转换为字符串