Welcome

首页 / 软件开发 / C# / C#程序集Assembly

C#程序集Assembly2009-07-19 本站 L小风一、Assembly

1.创建一个应用程序域application domain

AppDomain d = AppDomain.CreateDomain("MyDomain");

Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);

//获取当前应用程序域的友好名称

Console.WriteLine(d.FriendlyName);

//获取应用程序域的友好名称


图片1
当前程序所在的项目就是:Csharp,在资源管理器中还可以看到一个进程:


图片2
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);

}

程序运行结果如下:


图片34.显示应用程序域中的所有程序集

要实现这个,就必须增加引用: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);

//获取程序集的名称和版本

}


图片4
这里显示了当前Csharp程序运行时候所涉及到的程序集。

在前面的学习过程中,多次介绍到了命名空间,namespace;在C#的编程过程中,如果没有引用某一个命名空间,那么很多相关的类就不能创建对象,或者在程序的运行过程中会出现编译错误..

在OOP程序设计过程中,一个类都由方法和属性,字段组成;那么一个命名空间则是由一个以上的类组成,在这里命名空间中有许多内置的类可以调用。

现在来看下一个简单的命名空间:


图片5那么我们在另外一个文件中可以引用这个命名空间下的类了。

Using Csharp;

Csharp.Program pr=new Csharp.Program();

这样就完成了命名空间的设计和引用。