Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Перечисление доменов приложений процесса



Чтобы посмотреть, как программно взаимодействовать с доменами приложений.NET,

создадим новый проект типа С# Console Application по имени AppDomainManipulator и

определим в нем внутри типа Program статический метод PrintAllAssembliesInAppDomain(), использующий AppDomain.GetAssemblies () для получения списка всех двоичных файлов.NET, которые обслуживаются в интересующем домене приложения.

Этот список должен иметь вид массива типов System. Reflection.Assembly, a это значит, что необходимо использовать пространство имен System.Reflection. После получения массива сборок по нему должен осуществляться проход с отображением дружественного имени и версии каждой сборки:

public static void PrintAllAssembliesInAppDomain(AppDomain ad)

{

Assembly[] loadedAssemblies = ad.GetAssemblies();

Console.WriteLine("***** Here are the assemblies loaded in {0} *****\n", ad.FriendlyName);

foreach (Assembly a in loadedAssemblies)

{

Console.WriteLine("-> Name: {0}", a.GetName().Name); // имя

Console.WriteLine("-> Version: {0}\n", a.GetName().Version); // версия

}

}

Теперь модифицируем метод Main() так, чтобы перед вызовом PrintAllAssembliesInAppDomain{} он получал ссылку на текущий домен приложения через свойство AppDomain.CurrentDomain.

Чтобы пример стал еще немного интереснее, давайте сделаем так, чтобы метод Main ()

отображал окно сообщения Windows Forms и вынуждал CLR-среду загружать сборки

System.Windows.Forms.dll, System.Drawing.dll и System.dll.

Обязательно добавьте ссылки на эти сборки (Projectsè Add Reference) и соответствующим образом обновите набор операторов using

using System.Drawing;

using System.Windows;

using System.Windows.Forms;

static void Main(string[] args)

{

Console.WriteLine("***** Fun with AppDomains *****\n");

// Получение информации о текущем домене приложения.

AppDomain defaultAD = AppDomain.CurrentDomain;

// Этот вызов делается просто для выполнения загрузки

// дополнительных сборок в данный домен приложения.

// MessageBox.Show("Hello");

PrintAllAssembliesInAppDomain(defaultAD);

Console.ReadLine();

}






Дата публикования: 2015-07-22; Прочитано: 220 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...