如何获取我的应用程序创建的应用程序域列表?

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 应用程序中获取文件/资源​​列表

如何在ios中获取州,国家/地区列表

如何获取 logrotate 文件列表

如何使用 xamarin android 应用程序获取 wifi 列表

如何使用 win32 api 获取域用户帐户列表?