1. 问题场景 在 C/S 架构的系统中,客户端要实现某些业务功能,可以通过安装相关的应用程序集来方便的实现。同样的需求,在B/S 架构的系统里实现起来却比较困难。因为所有的程序都放在服务器端,客户端只是采用浏览器,通过HTTP 协议来访问服务器端。比较成熟的解决办法是开发ActiveX 控件安装到客户端,这样客户端的浏览器就可以访问本地的ActiveX 控件来执行相关的本地操作。通常开发ActiveX 使用C, C++或 VB 开发,本文将要谈论的,就是使用C#开发一个ActiveX 控件。 3. 注意的地方,C#开发的ActiveX 控件只可在装有Framework 的系统上才能用。 2. 开发工具 Visual Studio 2010 .NET 版本:2.0 开发语言:C# 3. ActiveX 控件项目创建 (1), 新建一个【Windows 窗体控件库项目】,项目名为ActiveXDemo 选择.NET Framwork2.0 版本,因为.Net2.0 安装文件只有20 多 M,客户端容易接受,而且如今多数家用电脑都装了.Net2.0 (2),需要更改两个地方的设置,选中刚创建的ActiveXDemo 项目: 1).右键选择“属性 >> 应用程序 >> 程序集信息”设置,勾选“使程序集 COM 可见”: 2). 右键选择“属性 >> 应用程序 >> 生成”设置,勾选 “为COM 互操作注册”(注意,此处如果是在debug状态下修改的,那么在调到release 状态下还需要再设置一次): 4. ActiveX 控件功能添加 (1),添加一个用户控件 (2),为了使该用户控件作为一个ActiveX 控件进行使用,还需要做以下修改: 首先,为控件类MiugoX.cs 添加GUID,这个编号将用于B/S 系统的客户端调用时使用(可以使用 工具-创建GUID 菜单创建一个GUID): [Guid("DF0769A5-99D3-4BE0-90B8-91C65A92118C"), ProgId("ActiveXDemo.MiugoX"), ComVisible(true)] public partial class MiugoX : UserControl, IObjectSafety { „„ // DF0769A5-99D3-4BE0-90B8-91C65A92118C就 ¨ª是 º?刚 ?刚 ?创 ä¡ä建 ¡§的 Ì?Guid (3),为了让ActiveX 控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能修改该接口的GUID 值) :添加一个接口IObjectSafety,实现该接口的目的就是提高程序的安全性,以便客户端IE 在不更改设置的情况下可以预行该ActiveX 控件。接口成员如下: using System; using System.Runtime.InteropServices; namespace ActiveXDemo { [Com...