加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – BuildManager.GetReferencedAssemblies等同于非Web应

发布时间:2020-12-15 22:47:39 所属栏目:asp.Net 来源:网络整理
导读:与AppDomain.GetAssemblies()相比,BuildManager.GetReferencedAssemblies()( System.Web.Compilation.BuildManager)似乎是一种更可靠的方法来获取ASP.NET应用程序在运行时引用的程序集,因为 AppDomain.GetAssemblies()只获
与AppDomain.GetAssemblies()相比,BuildManager.GetReferencedAssemblies()( System.Web.Compilation.BuildManager)似乎是一种更可靠的方法来获取ASP.NET应用程序在运行时引用的程序集,因为 AppDomain.GetAssemblies()只获取“已经加载到的程序集该应用程序域的执行上下文“.

通过所有程序集迭代是在DI容器中的应用程序启动时动态注册类型的重要工具,特别是在应用程序启动期间,其他程序集没有加载(不需要),而组合根是第一个需要它们.因此,获得应用程序的引用程序集的可靠方法非常重要.

虽然BuildManager.GetReferencedAssemblies()是ASP.NET应用程序的可靠方法,但我想知道:其他类型的应用程序可以使用哪些替代方案,如桌面应用程序,Windows服务和自主托管的WCF服务?

解决方法

我目前看到的唯一方法是手动预取所有引用的组件,就像BuildManager在封面下:
var assemblies =
    from file in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory)
    where Path.GetExtension(file) == ".dll"
    select Assembly.LoadFrom(file);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读