Tag: late binding

C#.NET是否支持IDispatch后期绑定?

问题 我的问题是: C#nativly支持后期绑定IDispatch吗? 假装我正在尝试自动化Office,同时兼容客户安装的任何版本。 在.NET世界中,如果您使用Office 2000进行开发,那么从现在到结束,每个开发人员和每个客户都需要拥有Office 2000。 在.NET之前的世界中,我们使用COM与Office应用程序进行通信。 例如: 1)使用版本独立的ProgID “Excel.Application” 解析为: clsid = {00024500-0000-0000-C000-000000000046} 然后使用COM,我们要求将其中一个类实例化为一个对象: IUnknown unk; CoCreateInstance( clsid, null, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IUnknown, out unk); 现在我们即将参加比赛 – 能够在我的应用程序中使用Excel。 当然,如果你真的想要使用该对象,你必须调用一些方法来调用方法。 我们可以获得各种接口声明,并将其翻译成我们的语言。 这项技术很好,因为我们得到了 早期绑定 代码洞察 编译类型语法检查 一些示例代码可能是: Application xl = (IExcelApplication)unk; ExcelWorkbook workbook = xl.Workbooks.Add(template, lcid); Worksheet worksheet = workbook.ActiveSheet; 但是使用接口有一个缺点:我们必须得到各种接口声明,转换成我们的语言。 我们坚持使用基于方法的调用,必须指定所有参数,例如: ExcelWorkbook workbook = […]