Her*_*man 32 asp.net-mvc assemblies buildmanager
只是想知道两者之间是否存在任何差异,在完全信任的asp.net mvc 2应用程序的环境中.
Lev*_*evi 58
.NET Framework将加载程序集推迟到当前的AppDomain中,直到需要它们为止.例如,如果仅从SomeMethod()调用第三方库,则第一方DLL通常在第一次运行SomeMethod()之前不会加载.
AppDomain.GetAssemblies()为您提供已加载到当前AppDomain的所有程序集.BuildManager.GetReferencedAssemblies()返回从Web.config和其他地方引用的所有程序集的列表,并将这些程序集加载到当前的AppDomain中.
这是上面的一个经过实践证明的例子.
在此示例中,CLR将ThirdParty.dll加载到当前AppDomain中,直到绝对必要.而且因为它需要执行SomeMethod(),所以当它被加载时.
或者:
在这里,即使您从未调用SomeMethod(),对BuildManager.GetReferencedAssemblies()的调用代表您将第三方库加载到当前AppDomain中.
当然,这一切都需要进行某些优化等,但总体思路仍然存在.
| 归档时间: |
|
| 查看次数: |
10593 次 |
| 最近记录: |