删除由 Reflection Emit 创建的动态生成类型
我正在使用反射在运行时发出一些动态类型。为什么并不重要。
我现在的问题是,使用 AssemblyBuilder、ModuleBuilder 和 TypeBuilder 等类可以完美生成类型,并且我可以毫无问题地使用它。
但是,在某些情况下,我可能需要更改生成类型的定义。如何从生成的程序集中删除生成的类型?
I am using reflection to emit some dynamic types at runtime. Why is not really important.
My problem right now is that using classes like AssemblyBuilder, ModuleBuilder and TypeBuilder, a type is generated perfectly and I can work with it without a problem.
However there can be instances where I might need to change the definition of the generated type. How do I remove a generated type from a generated assembly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要在自己的 AppDomain 中生成类型并卸载整个内容。即使如此,您也必须小心不要让实例跨越域边界,否则它可能会将类型加载到您的主域中。
You'd need to generate the types in their own AppDomain and unload the whole thing. Even then, you'd have to be careful not to let an instance cross the domain boundary, else it might load the type into your primary domain.