如何获取我的应用程序创建的应用程序域列表?
Posted
技术标签:
【中文标题】如何获取我的应用程序创建的应用程序域列表?【英文标题】:How do I obtain a list of the application domains my application has created? 【发布时间】:2008-10-05 05:21:33 【问题描述】:我有一个服务应用程序,它在用于长时间运行的任务的过程中创建 AppDomain。我一直在通过将它们存储在具有唯一 ID 的 Hashtable 中来跟踪它们。
任务完成后,服务应用程序会卸载分配给该任务的 AppDomain,然后将其从 appdomain Hashtable 中删除。
纯粹从健全性检查的角度来看,有没有一种方法可以查询 CLR 以查看创建应用程序域仍加载哪些应用程序域(即,我可以将跟踪 Hashtable 与 CLR 实际看到的内容进行比较) ?
【问题讨论】:
【参考方案1】:AFAIK,您需要保留自己的列表 - 就像您现在一样。
【讨论】:
是的......经过几个月的研究和研究。这似乎是正确的方式。【参考方案2】:如果您使用非托管 API,您可以设置一个在每次创建 AppDomain 时调用的 DomainManager,您会发现许多部分都在创建自己的 AppDomain,例如WCF。详细解释在Customizing the Microsoft .NET Framework Common Language Runtime
另一条路线是使用调试 API。
【讨论】:
Giulio - 感谢您的回答并感谢您提供本书的链接。不敢相信我错过了那个,看起来很迷人。【参考方案3】:我想你也想看看这篇文章 - “Working with Application Domains in WPF”。
【讨论】:
+1 .. infosysblogs.com/microsoft/2008/10/… 看起来很全面的文章! 链接已失效,但在 Wayback 上仍然可用:web.archive.org/web/20160801175307/http://www.infosysblogs.com/…以上是关于如何获取我的应用程序创建的应用程序域列表?的主要内容,如果未能解决你的问题,请参考以下文章
(J2ME) 如何在我的 jar 应用程序中获取文件/资源列表