C#和.NET Framework 3.5中的后期绑定

The*_*heo 3 c# late-binding .net-3.5

我试图将此代码转换为C#.NET Framework 3.5,但该版本不是后期绑定友好.如果我使用4.0,我会使用动态类型,但现在不是一个选项.

使事情变得复杂的是我真正想要创建的对象(atl3270Tool)是在参数内创建的.帮助将不胜感激.

Dim atl3270Tool
Dim ErrMsg As String
Dim S_OK As UInt16 = 0
Dim atlDirectorObject = CreateObject("atlDirectorObject.atlDirector")
If atlDirectorObject.CreateTool("3270", 1, True, True, 0, atl3270Tool, ErrMsg) <> S_OK Then
    'Terminate
End If
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 5

在vb.net中很容易进行后期绑定.因此,利用.NET支持以不同语言编写代码,添加一个vb.net类库项目来包装COM组件.

标识符名称上的"atl"前缀很奇怪.ATL是ActiveX模板库的首字母缩写,ActiveX模板库是一种非常流行的编写COM组件的C++库.默认情况下,它会创建支持双重绑定的服务器,包括迟到和早期.对于早期绑定,您需要一个类型库,它通过ATL项目中的默认值嵌入到可执行文件中.因此,请确保您没有浪费机会编写早期绑定的C#代码.Project + Add Reference,Browse选项卡,选择DLL.如果您没有投诉,那么您是金色的,使用对象浏览器查看生成的互操作库.