Взаимосвязи Process и AppDomain - C#
Формулировка задачи:
Здравствуйте.
Подскажите, пожалуйста, подробно, какие на деле есть связи между Process'ом и его AppDomain'ами?
Везде пишут, что каждому процессу принадлежат один/несколько доменов. Вроде всё просто. Но захотелось мне вывести рекурсивное дерево всех процессов с их доменами на моём компьютере, как столкнулся с трудностями - у класса Process нету коллекции доменов и каких-то отсылок к ним. Получается, что на прямую домены к процессам всё-таки не принадлежат?
У Process есть только какие-то Module'и (Process.ModuleCollection), которые, причём, не у всех почему-то и есть. Похоже, что модули - библиотеки, загруженные в процесс. Это так?
У Process есть ProcessThread'ы. Ага, логично, какие-то потоки, вроде бы в них должны быть домены, но там их тоже нет...
Что из этого является или содержит в себе AppDomain'ы? Или как их получить из Process'а?
Решение задачи: «Взаимосвязи Process и AppDomain»
textual
Листинг программы
using Microsoft.Samples.Debugging.CorPublish; CorPublish cp = new CorPublish(); foreach (CorPublishProcess process in cp.EnumProcesses().Cast<CorPublishProcess>().Where(p => p.IsManaged)) { Console.WriteLine("[{0}] {1}", process.ProcessId, process.DisplayName); foreach (CorPublishAppDomain appDomain in process.EnumAppDomains()) { Console.WriteLine("\t[{0}] {1}", appDomain.Id, appDomain.Name); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д