一、Assembly
1.創建一個應用程序域application domain
AppDomain d = AppDomain.CreateDomain("MyDomain");
Console.WriteLine(AppDomain.CurrentDomain.FrIEndlyName);
//獲取當前應用程序域的友好名稱
Console.WriteLine(d.FrIEndlyName);
//獲取應用程序域的友好名稱
當前程序所在的項目就是:Csharp,在資源管理器中還可以看到一個進程:
2.利用AppDomain類來執行程序集
if (AppDomain.CurrentDomain.FrIEndlyName != "MyAppDomain")
{//如果當前應用程序域的名稱不是MyAppDomain
//那麼創建對象的應用程序域
AppDomain domain = AppDomain.CreateDomain("MyAppDomain");
domain.ExecuteAssembly("Csharp.exe", null, args);
//使用指定的參數運行指定文件中的程序集
}
3獲取或設置AppDomain類的數據
setData(),getData()這兩個方法來設置和獲取數據
AppDomain d = AppDomain.CreateDomain("MyDomain");
Console.WriteLine(AppDomain.CurrentDomain.FrIEndlyName);
ArrayList list = new ArrayList();
list.Add("alive");
list.Add("silver");
list.Add("dog");
list.Add("FTP");
d.SetData("para", list);
//將制定的值賦值給應用程序域的屬性
foreach (string s in (ArrayList)d.GetData("para"))
{// 獲取存在當前應用程序域中的值
Console.WriteLine("you will see" + s);
}
程序運行結果如下:
4.顯示應用程序域中的所有程序集
要實現這個,就必須增加引用:using System. Reflection;映射
AppDomain d = AppDomain.CreateDomain("MyDomain");
Console.WriteLine(AppDomain.CurrentDomain.FrIEndlyName);
Console.WriteLine("in " + d.FrIEndlyName);//
Assembly[] myass = d.GetAssemblIEs();
//獲取當前應用程序域中所有程序集
foreach (Assembly ass in myass)
{
Console.WriteLine("it's name:" + ass.GetName().Name);
Console.WriteLine("it's version:" + ass.GetName().Version);
//獲取程序集的名稱和版本
}
這裡顯示了當前Csharp程序運行時候所涉及到的程序集。
在前面的學習過程中,多次介紹到了命名空間,namespace;在C#的編程過程中,如果沒有引用某一個命名空間,那麼很多相關的類就不能創建對象,或者在程序的運行過程中會出現編譯錯誤..
在OOP程序設計過程中,一個類都由方法和屬性,字段組成;那麼一個命名空間則是由一個以上的類組成,在這裡命名空間中有許多內置的類可以調用。
現在來看下一個簡單的命名空間:
那麼我們在另外一個文件中可以引用這個命名空間下的類了。
Using Csharp;
Csharp.Program pr=new Csharp.Program();
這樣就完成了命名空間的設計和引用。