This print for content only-size & color not accurate 7" X 9-1/4" / casebound / malloy



Download 21,46 Mb.
Pdf ko'rish
bet1039/1830
Sana28.09.2021
Hajmi21,46 Mb.
#188411
1   ...   1035   1036   1037   1038   1039   1040   1041   1042   ...   1830
Bog'liq
[book] [en] Pro C# 2008 and the NET 3.5 Platform Fourth Edition



Source Code

The MyTypeViewer project can be found under the Chapter 16 subdirectory.

C H A P T E R   1 6  

T Y P E   R E F L E C T I O N, L AT E   B I N D I N G, A N D  AT T R I B U T E - B A S E D   P R O G R A M M I N G



535

8849CH16.qxd  10/9/07  4:27 PM  Page 535




Dynamically Loading Assemblies

In the previous chapter, you learned all about how the CLR consults the assembly manifest when

probing for an externally referenced assembly. However, there will be many times when you need

to load assemblies on the fly programmatically, even if there is no record of said assembly in the

manifest. Formally speaking, the act of loading external assemblies on demand is known as a

dynamic load.

System.Reflection defines a class named Assembly. Using this type, you are able to dynamically

load an assembly as well as discover properties about the assembly itself. Using the Assembly type,

you are able to dynamically load private or shared assemblies, as well as load an assembly located

at an arbitrary location. In essence, the Assembly class provides methods (Load() and LoadFrom() in

particular) that allow you to programmatically supply the same sort of information found in a

client-side *.config file.

To illustrate dynamic loading, create a brand-new Console Application named External

AssemblyReflector. Your task is to construct a Main() method that prompts for the friendly name of

an assembly to load dynamically. You will pass the Assembly reference into a helper method named

DisplayTypes(), which will simply print the names of each class, interface, structure, enumeration,

and delegate it contains. The code is refreshingly simple:

using System;

using System.Reflection;

using System.IO;  // For FileNotFoundException definition.

namespace ExternalAssemblyReflector

{

class Program



{

static void DisplayTypesInAsm(Assembly asm)

{

Console.WriteLine("\n***** Types in Assembly *****");



Console.WriteLine("->{0}", asm.FullName);

Type[] types = asm.GetTypes();

foreach (Type t in types)

Console.WriteLine("Type: {0}", t);

Console.WriteLine("");

}

static void Main(string[] args)



{

Console.WriteLine("***** External Assembly Viewer *****");

string asmName = "";

bool userIsDone = false;

Assembly asm = null;

do

{



Console.WriteLine("\nEnter an assembly to evaluate");

Console.Write("or enter Q to quit: ");




Download 21,46 Mb.

Do'stlaringiz bilan baham:
1   ...   1035   1036   1037   1038   1039   1040   1041   1042   ...   1830




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