解决方法
AppDomain.GetAssemblies()提供已经加载到当前AppDomain中的所有程序集。 BuildManager.GetReferencedAssemblies()返回从Web.config和其他地方引用的所有程序集的列表,并将这些程序集加载到当前的AppDomain中。
这里有一个实例的上述。
> SomeMethod()还没有运行。
>调用AppDomain.GetAssemblies(),返回一个不包含ThirdParty.dll的集合。
>调用SomeMethod()。
>调用AppDomain.GetAssemblies(),返回包含ThirdParty.dll的集合。
在这个例子中,CLR推迟将ThirdParty.dll加载到当前的AppDomain中,直到它是绝对必要的。因为它是必要的执行SomeMethod(),这是当它被加载。
或者:
> SomeMethod()还没有运行。
>调用AppDomain.GetAssemblies(),返回一个不包含ThirdParty.dll的集合。
>调用BuildManager.GetReferencedAssemblies(),返回一个包含ThirdParty.dll的集合。
>调用AppDomain.GetAssemblies(),返回一个包含ThirdParty.dll的集合。
在这里,即使您从未调用SomeMethod(),对BuildManager.GetReferencedAssemblies()的调用已经代表您将第三方库加载到当前的AppDomain中。
当然,这一切都要经过某些优化等,但一般的想法是成立的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。