Ste*_*ven 13 asp.net asp.net-mvc wcf winforms asp.net-web-api
相比AppDomain.GetAssemblies(),BuildManager.GetReferencedAssemblies()(System.Web.Compilation.BuildManager)似乎是一种更可靠的方式来获得由在运行ASP.NET应用程序中引用的程序集,因为AppDomain.GetAssemblies()只得到"已经将组件已经被加载到此应用程序域的执行上下文".
迭代所有程序集是在DI容器中应用程序启动时动态注册类型的重要工具,特别是在应用程序启动期间,可能还有其他程序集未加载(不需要),组合根是第一个需要它们的人.因此,有一个可靠的方法来获取应用程序的引用程序集非常重要.
虽然BuildManager.GetReferencedAssemblies()对于ASP.NET应用程序来说是一种可靠的方法,但我想知道:有哪些替代方案可用于其他类型的应用程序,例如桌面应用程序,Windows服务和自托管WCF服务?
Ste*_*ven 11
我目前看到的唯一方法是手动预取所有引用的程序集,就像BuildManager下面的内容一样:
var assemblies =
from file in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory)
where Path.GetExtension(file) == ".dll"
select Assembly.LoadFrom(file);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2523 次 |
| 最近记录: |