1

我正在用 F# 编写编译器,我希望能够在 .net 运行时访问非托管元数据 COM 接口。在任何人提到它之前,Reflection.Emit 不适合我的目的,我也不想使用元数据 COM 接口以外的任何其他方法。

我已经导入了 mscoree.tlb,但它似乎没有包含我需要的接口。

我感兴趣的接口包括IMetaDataEmit。任何与此相关的示例代码都会非常有用,尽管到目前为止我还没有找到。

C# 示例会很好,因为我可以轻松地将它们转换为 F#。

提前感谢任何可以帮助我解决这个相当神秘的查询的人!

更新:我现在已经通过使用接口 GUID 编写显式 COM 引用来进行排序!

4

2 回答 2

1

我希望您找到了mdbg 示例,其中包含用于包装您需要的接口的源代码。

于 2009-01-03T22:50:54.323 回答
1

这里的一种选择是创建您自己的项目并将这些接口(使用它们在 cor.h 中的定义)编译到类型库中,然后您可以将其 tlbimp 到托管程序集中。我意识到将 C 标头代码转换为 IDL 会非常繁琐,但是这可能会通过一些文本处理脚本来自动化(或部分自动化)。

于 2008-10-24T02:29:14.073 回答