目录:
定义-运行时可调用包装(RCW)是什么意思?
运行时可调用包装器(RCW)是由公共语言运行时(CLR)生成的包装器对象,用于封装组件对象模型(COM)对象,以将其公开为.NET程序集。
RCW充当.NET客户端的主要接口,该客户端需要通过整理它们之间的调用来与COM组件进行交互。 它形成一个元数据包装程序,将COM组件公开给CLR。 它帮助现有的ActiveX容器托管.NET控件,并帮助.NET Windows Forms应用程序托管ActiveX容器。 RCW在使用COM组件构建的业务系统中也很有用,允许将其旧的旧代码与新开发的.NET组件集成在一起,而不会影响生产力。
Techopedia解释了Runtime Callable Wrapper(RCW)
COM组件是二进制可重用对象,它通过发布与客户端进行通信的接口来提供其服务。 接口的类型库中指定了COM组件的接口或二进制协定的定义。 与COM不同,.NET对象之间的通信是基于对象的,而不是基于接口的。 RCW充当COM组件和.NET对象之间的桥梁,以路由操作并通过封送处理在两者之间进行中介。
RCW管理其封装的COM对象的生存期。 在两个应用程序域或单元之间传递引用时,将使用对象的代理。 RCW的创建基于从类型库派生的元数据。 它的破坏发生在垃圾回收期间。 RCW的封送处理包括方法参数和返回值的转换,以便以客户端和服务器均可读取的方式表示它们。 封送处理的示例可能是对字符串参数进行的转换,该字符串参数需要作为COM组件的BSTR类型传递,而在.NET客户端中必须是字符串类型。
可以使用Visual Studio创建RCW,该Visual Studio使用自动代码生成功能,从而使过程对用户而言简单透明。 或者,RCW程序集包含在组件的类型库中定义的类型的元数据,可以使用tlbimp.exe工具从命令行创建该组件。
此定义是在.NET上下文中编写的