在 Windows 窗体上承载 ActiveX 控件时的注意事项
尽管 Windows 窗体已经为承载 Windows 窗体控件而进行了优化,您仍可以使用 ActiveX 控件。规划使用 ActiveX 控件的应用程序时应注意下列事项:
安全性 公共语言运行库已增强了代码访问安全性。以 Windows 窗体为特色的应用程序在完全受信任的环境中运行不会有任何问题;在不完全受信任的环境中运行时,大部分功能是可访问的。Windows 窗体控件不用编译就可以在浏览器中承载。然而,Windows 窗体上的 ActiveX 控件无法利用这些安全性增强。运行 ActiveX 控件需要非托管代码权限,这种权限是使用 SecurityPermissionAttribute.UnmanagedCode 属性设置的。有关安全性和非托管代码权限的更多信息,请参见 SecurityPermissionAttribute 类。
总拥有成本 添加到 Windows 窗体的 ActiveX 控件将作为一个整体部署到该 Windows 窗体中,这会显著增加所创建文件的大小。另外,在 Windows 窗体上使用 ActiveX 控件要求写入注册表。与不要求这样做的 Windows 窗体控件相比,ActiveX 控件对用户的计算机更具有侵略性。
备注
使用 ActiveX 控件时需要使用 COM Interop 包装。有关更多信息,请参见 Visual Basic 和 Visual C# 中的 COM 互操作性。
备注
如果 ActiveX 控件的成员名称与 .NET Framework 中定义的名称匹配,则 ActiveX 控件导入程序创建 AxHost 派生类时,将在成员名称前面添加 Ctl 前缀。例如,如果 ActiveX 控件有名为 Layout 的成员,由于 Layout 事件已在 .NET Framework 中定义,所以该成员将在 AxHost 派生类中被重命名为 CtlLayout。