作为整体发布的.NET可执行程序(或可执行程序的一部分)。
优点:重用,跨语言的程序设计
查看程序集的内容:开始菜单-Microsoft Visual 2008-VisualStudioTools-VisualStudioCommand Prompt,输入Ildasm
1,创建程序集:
新建-项目-类库
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shapes { public class Circle { double Radius; public Circle() { Radius = 0; } public Circle(double givenRadius) { Radius = givenRadius; } public double Area() { return System.Math.PI * (Radius * Radius); } } public class Triangle { double Base; double Height; public Triangle() { Base = 0; Height = 0; } public Triangle(double givenBase, double givenHeight) { Base = givenBase; Height = givenHeight; } public double Area() { return 0.5F * Base * Height; } } }
生成解决方案,Ildasm查看生成的dll
.ctor为构造函数
2,调用程序集
新建工程,项目-添加引用-浏览
找到生成的dll文件,确定。
添加按键,双击。
代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Shapes; // 把引用的空间声明好 namespace WindowsFormsApplication11 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Circle c = new Circle(1.0F);//引用的类 MessageBox.Show("Area of Circle(1.0) is " + (c.Area()).ToString());//引用的方法 } } }
运行结果:
注:查看项目文件夹,发现dll已经拷贝到当前执行文件夹中,以后发布的话整个目录端过去就行了,方便啊。
3,私有个共享程序集
之前都只把dll拷贝放到当前执行文件夹中,但每个程序都放一个岂不浪费,可以使用共享程序集即可解决问题,dll存储在GAC中,所以程序无需知道共享程序集的位置,只要在系统范围都可以使用共享程序集。使用方法后续补充。