Bu yazıda AppDomain kullanarak uygulamlarımıza Assembly’ler yüklemeyi ve bunları kullanmayı anlatacağım. Bir önceki makaleyi okumanızı öneririm Bir Saldırının Anatomisi ve Application Domain Sınıfı-2
Bir önceki yazıdan devam edelim ve en son yaptığımız gibi, kendi oluşturduğumuz ozelAlan domainimize MarshalByRefObjects classından türettiğimiz expTestAssebmly.dll ‘limizi ekleyerek tekrar listeyi alalım.
class Program
{
static void Main(string[] args)
AppDomainSetup domainBilgi = new AppDomainSetup();
domainBilgi.ApplicationBase = "D:\\Alt_Domain";
AppDomain ozelAlan = AppDomain.CreateDomain("domain#1", null, domainBilgi);
Console.Write("Default Domain Adı : {0}\n" +
"Uygulama Dizini : {1}\n" +
"------------------------\n" +
"Alt Domain Adı : {2}\n" +
"Uygulama Dizini : {3}\n",
AppDomain.CurrentDomain.FriendlyName,
AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
ozelAlan.FriendlyName,
ozelAlan.SetupInformation.ApplicationBase
);
Assembly asm = Assembly.LoadFile(ozelAlan.SetupInformation.ApplicationBase + "\\expTestAssembly.dll");
object obj;
obj = ozelAlan.CreateInstanceAndUnwrap(asm.GetName().Name, "expTestAssembly.Test");
//Assebmly listeleri alınıyor
Console.Write("\nDefault Domain Assemblies\n------------------------\n");
foreach (Assembly assm in AppDomain.CurrentDomain.GetAssemblies())
Console.WriteLine("\t" + assm.GetName().Name);
}
Console.Write("\nChild Domain Assemblies\n------------------------\n");
foreach (Assembly assm in ozelAlan.GetAssemblies())