Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet456/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   452   453   454   455   456   457   458   459   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.22 .Хостинг.CLR.и.домены.приложений
Для переопределения заданного по умолчанию времени в 5 и 2 минуты используй-
те виртуальный метод 
InitializeLifetimeServices
типа 
MarshalByRefObject
. До-
полнительную информацию по данной теме вы можете найти в SDK-документации 
на .NET Framework.
Пример 2. Междоменное взаимодействие 
с продвижением по значению
Этот пример похож на предыдущий. В нем точно так же создается второй домен 
приложений. Затем вызывается метод 
CreateInstanceAndUnwrap
для загрузки той 
же сборки в новый домен и создания в нем экземпляра объекта 
MarshalByRefType

Далее CLR создает для объекта представитель, и переменной 
mbrt
(в основном до-
мене) присваивается ссылка на него. Теперь при помощи созданного представителя 
я вызываю метод 
MethodWithReturn
. Этот метод без параметров будет выполнен 
в новом домене, а перед тем как вернуть ссылку на объект основному домену, он 
создаст экземпляр типа 
MarshalByValType
.
Тип 
MarshalByValType
не является производным от 
System.MarshalByRefObject

а значит, CLR не может определить тип представителя для создания его экземпляра; 
то есть объект нельзя продвинуть по ссылке через границу домена.
Однако благодаря наличию у типа 
MarshalByValType
настраиваемого атрибута 
[Serializable]
метод 
MethodWithReturn
может выполнить продвижение объекта 
по значению. Сейчас мы поговорим о том, что происходит при продвижении объ-
екта по значению из одного домена (исходного) в другой (целевой). А дополни-
тельную информацию о механизмах сериализации и десериализации вы найдете 
в главе 24.
Когда исходному домену нужно передать ссылку на объект в целевой домен 
(или возвратить ссылку из целевого домена), CLR сериализует экземплярные 
поля объекта в байтовый массив, который затем копируется. После этого CLR 
десериализует байтовый массив в целевом домене. Это вынуждает CLR загрузить 
в целевой массив сборку (если она еще не загружена), в которой определен десе-
риализованный тип. Далее CLR создает экземпляр типа и использует значения из 
байтового массива для инициализации полей объекта так, чтобы они полностью 
совпадали со значениями исходного объекта. Иначе говоря, CLR делает точную 
копию исходного объекта в целевом домене. Затем метод 
MethodWithReturn
воз-
вращает ссылку на эту копию; в результате наш объект оказывается продвинутым 
по значению через границу домена.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   452   453   454   455   456   457   458   459   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish