早期绑定
采用早期绑定时,Visual C#使用有关所涉及的Office应用程序的可用类型信息直接绑定到它需要使用的方法或属性。编译器可以执行类型和语法检查,以确保传递到方法或属性的参数的数量和类型正确无误,并且返回的值是所期望的类型。由于早期绑定在运行时调用属性或方法所需的工作量较小,因此有时速度较快。然而,虽然早期绑定可能速度较快,但与晚期绑定之间的性能差异通常不大。
早期绑定确实有这样一个小缺点:可能会带来版本兼容性问题。例如,假定诸如Microsoft Excel 2002之类的自动化服务器引入了Excel 2000中没有的新方法或属性,或者更改了现有的属性或方法。这些更改可能会改变对象的二进制布局,并导致使用Excel 2002类型信息实现Excel 2000自动化的Visual C#应用程序出现问题。为了避免早期绑定发生这样的问题,通常建议您在开发和测试自动化客户端时,使用您希望支持的最低版本的Office应用程序的类型信息。
下列步骤说明了如何创建使用早期绑定的自动化客户端。请注意,正如这些步骤所说明的那样,早期绑定要求您引用自动化客户端的类型库。
创建使用早期绑定的自动化客户端
启动Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。从Visual C#项目类型中选择Windows应用程序。默认情况下会创建Form1。
添加对Microsoft Excel对象库的引用。为此,请按照下列步骤操作:
在项目菜单上,单击添加引用。
在COM选项卡上,找到Microsoft Excel对象库并单击选择。
注意:Office 2003包含主Interop程序集(PIA)。Office XP不包含PIA,但您可以下载PIA。有关Office XP PIA的其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
328912 INFO:Microsoft Office XP PIA可供下载
在添加引用对话框中单击确定以接受您的选择。如果系统提示您为选定的库生成包装,请单击是。
在视图菜单上,选择工具箱以显示工具箱,然后向Form1添加一个按钮。
双击Button1。将出现该窗体的代码窗口。
在代码窗口中,将以下代码
|
替换为:
|
滚动到代码窗口的顶部。将下面的代码行添加到using指令列表的末尾:
|
晚期绑定
与早期绑定不同,晚期绑定要等到运行时才会将属性和方法调用绑定到它们的对象。为此,目标对象必须实现一个特殊的COM接口:IDispatch。利用IDispatch::GetIDsOfNames方法,Visual C#可以询问对象支持哪些方法和属性,然后,IDispatch::Invoke方法允许Visual C#调用这些方法和属性。这种晚期绑定的优点是:它消除了早期绑定所固有的某些版本依赖性。然而,它也有以下缺点:省略了对自动化代码完整性的编译时检查,也不提供“智能感知”功能(该功能可提供有助于正确调用方法和属性的提示)。
共2页: 1 [2] 下一页 |