Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Выполнение кода в другом домене приложенияСодержание книги
Поиск на нашем сайте
После загрузки сборки в домен приложения можно выполнить содержащийся в ней код. Наиболее простой способ выполнения кода заключается в использовании AssemblyLoad, что позволяет загрузить сборку в текущий домен приложения и начать выполнение кода в точке входа сборки по умолчанию. Для загрузки сборки в другой домен приложения используется ExecuteAssembly или ExecuteAssemblyByName, или одна из других перегруженных версий этих методов. Чтобы выполнить другую сборку с точки, отличной от точки входа по умолчанию, определите новый тип в удаленной сборке, производной от MarshalByRefObject. Затем используйте CreateInstance для создания экземпляра такого типа в своем приложении. Рассмотрите следующий файл, создающий сборку, состоящую из одного пространства имен и двух классов. Допустим, что эта сборка была построена и сохранена на диске C под именем HelloWorldRemote.exe.
ß------ To access the code from another application, you can either load the assembly into the current application domain or create a new application domain and load the assembly into it. If you load the assembly into the current application domain with Assembly.LoadFrom, you can use Assembly.CreateInstance to instantiate an instance of the RemoteObject class, which causes the object constructor to be executed.
When loading the assembly into a separate application domain, use AppDomain.ExecuteAssembly to access the default entry point or AppDomain.CreateInstance to create an instance of the RemoteObject class. Creating the instance causes the constructor to be executed.
If you do not want to load the assembly programmatically, use Add Reference from the Solution Explorer to specify the assembly HelloWorldRemote.exe. Then, add a using HelloWorldRemote; directive to the using block of your application, and use the RemoteObject type in your program to declare an instance of the RemoteObject object, like this:
Чтобы получить доступ к коду из другого приложения, можно либо загрузить сборку в текущий домен приложения, или создать новый домен приложения и загрузить сборку в него. Если сборка загружена в текущий домен приложения Assembly.LoadFrom, то можно использовать Assembly.CreateInstance для создания экземпляра класса RemoteObject, что приводит к выполнению конструктора объекта. ß-----
При загрузке сборки в отдельный домен приложения для доступа к точке входа по умолчанию используйте AppDomain.ExecuteAssembly, а для создания экземпляра класса RemoteObject используйте AppDomain.CreateInstance. Создание экземпляра приводит к выполнению конструктора. ß-----
Если сборку не требуется загружать программными средствами, используйте команду Добавить ссылку в Обозревателе решений, чтобы указать сборку HelloWorldRemote.exe. Затем, добавьте директиву using HelloWorldRemote; к блоку using приложения, и используйте тип RemoteObject в программе для объявления экземпляра объекта RemoteObject (см. ниже): ß---
|
|||||||
Последнее изменение этой страницы: 2017-01-19; просмотров: 123; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.13.192 (0.005 с.) |