合并项目引用
1、给项目添加以下引用:
• Microsoft.CSharp
• System.Data.DataSetExtensions
• System.Web
• System.Xml.Linq
2、从项目移除以下引用:
• System.Data
• System.Windows.Forms
• System.Xml

图 4 合并引用后的解决方案
创建Web控件
1、在代码编辑器中打开ColorTextControl.cs文件。
2、将命名空间改为MyWebControls。
3、在ToolboxData属性上,用ColorTextControl替代ServerControl1。
这些值指定了从工具箱拖动控件到Web页面上时,为控件生成标签,它们必须与控件类的名字匹配,也是显示在工具箱上控件的名字。
4、给控件类增加一个ProvideToolBoxControl属性。
这个属性的第一个参数是程序集的名字,它与命名空间的名字是一样的,彩色文本控件将会以这个名字显示在工具箱上。控件类源代码的开头部分如下:
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:ColorTextControl runat=server>")]
[ProvideToolboxControl("MyWebControls", false)]
public class ColorTextControl : WebControl
{
5、用下面的Get方法替换默认的“Text”属性:
{
String s = (String)ViewState["Text"];
return "' + s + "";
}
它将在文字周围显示一个绿色标签。
6、在代码编辑器中打开Properties/AssemblyInfo.cs文件。
7、用“*”替换AssemblyVersion版本修订编号,如:
[assembly: AssemblyVersion("1.0.0.*")]
自定义工具箱控件是缓存起来的,只有程序集前面变化时才会刷新,每次构建时,通过增加程序集版本修订编号,缓存就会一直刷新。
测试你的Web控件
发布Web控件之前,最好先在Visual Studio实验实例上进行测试。
1、按F5启动Visual Studio的实验实例。
2、从“工具”菜单中选择“扩展管理器”,显示MyWebControls扩展已经启用,如下图所示。

图 5 已经生效的扩展
3、关闭“扩展管理器”。
4、创建新的ASP.NET Web应用程序项目。
5、在源模式下打开default.aspx。
6、打开工具箱,你应该在MyWebControls分类下看到ColorTextControl,如下图所示。

图 6 MyWebControls下的ColorTextControl
7、拖动一个ColorTextControl到Web页面。
8、给ColorTextControl标签增加Text属性,给其赋值Think Green!,代码如下:
9、按F5启动ASP.NET开发服务器。
ColorTextControl在网页中渲染后的效果如下:

图 7 ColorTextControl最终显示效果
10、关闭ASP.NET开发服务器。
11、关闭Visual Studio实验实例。