"Anonymousously Hosted DynamicMethods Assembly"究竟是什么?如何手动加载?

dba*_*baw 30 .net c#

作为.NET开发人员,该行

'<process name>' (Managed): Loaded 'Anonymously Hosted DynamicMethods Assembly'
Run Code Online (Sandbox Code Playgroud)

你可能很熟悉.我的问题很简单明了:这个'匿名托管的DynamicMethods程序集'究竟是什么?我可以手动加载(预加载)吗?如果是这样,怎么样?可以通过Assembly.Load(...)完成吗?

Han*_*ant 31

System.Reflection.Emit包含允许您通过发出IL指令来创建动态生成的代码的类.DynamicMethod和AssemblyBuilder类是这样做的工作.IL通常从程序集加载,但在动态生成IL时没有程序集.但是,需要一个程序集对象作为IL代码的容器,而AppDomain.DefineDynamicAssembly()创建一个"假"代码.这就是您在调试器通知中看到的内容.

您不能使用Assembly.Load(),动态创建程序集.