.NET的主要互操作程序集嵌入如何工作?

时间:2012-01-29 00:34:08

标签: c# compiler-construction com interop embedding

我正在研究.NET公共语言基础结构,在我开始编写我将编写的编译器的细节之前,我想确保某些功能可用。为了做到这一点,我必须了解它们是如何工作的。

我不确定的一个功能是.NET主互操作程序集嵌入。我不太确定.NET如何仅嵌入您使用的类型与您使用的类型所公开的类型。从我对此进行的一些研究中,我注意到它发出了一个利用vtable gap方法的简单接口,其中方法名称格式为VtblGap {0} _ {1}其中{0}是间隙的索引和{1}是间隙的成员大小。这些方法标记为rtspecialname和specialname。这是否准确,是个问题。

假设上述情况属实,我将如何获取必要的信息以将类似的元数据嵌入到生成的应用程序中?

据我所知,您可以订购通过元数据令牌获取的MemberInfo对象,并通过interop程序集中的属性获取dispid信息。我最困惑的领域是导入的接口似乎与其他嵌入类型没有直接关联,顺序索引的接口似乎是出于版本控制的原因。它们的包含是基于它们的索引还是使用了一些其他逻辑?一个例子是Microsoft.Office.Interop.Word,当你向一个文档添加一个文档时,它会用它来导入文档,它的事件等等。

这里希望知情人士能够了解嵌入这些类型可能涉及的其他内容。

0 个答案:

没有答案