用 Visual C# 来做组件,其实是一件很容易的事情。至少比用 VISUAL C++ 要容易的多。在本文中,笔者将为您详细介绍如何来做一个组件。我们可以通过二个步骤来完成这个过程: 1. 制作一个组件; 2. 在客户端测试这个组件。
一 . 制作一个组件
1 .首先建立一个新类库工程文件
选择 File->New->Project->Visual C# Projects->Class Library 。填入工程文件名称,并且通过 Browse 按钮选择文件要存放的目录。然后点击 OK 。
2 .工程文件和他所包含的文件
此时的工程文件中的 Solution Explorer 已经加了两个 C# 的类。分别是 AssemblyInfo.cs 和 Class1.cs 我们只要关心的是 Class1.cs 就可以了, AssemblyInfo.cs 可以不管它。
3 . namespace mcMath (名称空间 mcMath )
双击 Class1.cs ,就会看到 namespace mcMath ,我们在客户端调用组件的时候,会涉及到这个 namespace :
public long Add (long val1, long val2)
{
return 0;
}
public bool Extra
{
get
{
return true;
}
set
{
}
}
至此,在确认上面的事情都已经完成后,编译这个工程文件时就可以在 bin/debug 目录里面找到 mcMath.dll ,它就是组件。但此时的组件没有任何功能,下面我们将进一步的完善它。
4 .加入一个方法
从 View menu 中打开 ClassView ,我们看到的 Class1 没有任何方法和属性。现在我们给它加上一个方法和一个属性。
点中 Class1 ,右击,选择 Add->Add Method...
这时会弹出 VISUAL C# 的方法制作向导窗口。你可以在此向导的帮助下,为你的组件加入方法的名称、访问类型、返回值、参数,甚至是注释。用 Add 和 Remove 按钮可以方便的从参数列表中增加或删除参数。我们在此加入一个方法: long Add( long val1 , long val2 ) ,这个方法的功能是把两个数相加,然后返回他们的和。
5 .加入一个属性
重复加入方法的过程,在同样的位置,打开 C# 的属性向导,按照下图为组件加入一个属性。
在上述过程完成以后, Class1 就变成了如下的模样:
再仔细看看 Class1 类,你就会发现向导在我们的组件中加入了两个函数:
public long Add (long val1, long val2)
{
return 0;
}
public bool Extra
{
get
{
return true;
}
set
{
}
}
6. 为 Class 添加代码
按照下面的代码改造 Class ,并且把 Class1 改名为 mcMathComp (这是因为 Class1 是缺省名称,容易造成混乱,在客户端调用组件时候可能会出问题)。
namespace mcMath
{
using System;
public class mcMathComp
{
private bool bTest = false;
public mcMathComp()
{
}
public long Add (long val1, long val2)
{
return val1 + val2;
}
public bool Extra
{
get
{
return bTest;
}
set
{
bTest = Extra ;
}
}
}
}
7 .生成 DLL
编译工程文件生成组件,该组件会在工程文件的 bin\debug 目录里,文件扩展名是 DLL 。
二.测试 DLL
在客户端,用 VISUAL C# 调用刚才我们生成的组件,按照以下几步即可。
1 .新建一个控制应用程序
选择 File->New->Project->Visual C# Projects->Console Application 。我们就通过这个控制应用程序来测试我们的组件。
2 .为 Namespace (名称空间)添加引用
打开 Project->Add reference ,浏览到刚才生成的 DLL ,然后按 OK 。
添加引用向导将会把引用加到当前的工程文件的类里。
3 .调用 mcMath 名称空间,创建 mcMathComp 对象,并且调用它的方法和属性
按照下面的步骤就可以方便的调用方法和属性。
(1) 使用 namespace ,使用 mcMath ;
(2) 创建 mcMathComp 对象;
mcMathComp cls = new mcMathComp();
(3) 调用方法和属性;
mcMathComp cls = new mcMathComp();
long lRes = cls.Add( 23, 40 );
cls.Extra = false;
下面是完整的程序代码:
namespace mcClient
{
using System;
using mcMath;
public class Class1
{
public Class1()
{
}
public static int Main(string[] args)
{
mcMathComp cls = new mcMathComp();
long lRes = cls.Add( 23, 40 );
cls.Extra = false;
return 0;
}
}
}
至此我们就完成了一个组件从制作到测试的全部工作。