繁体   English   中英

如何从 C# 或 F# 访问 IMetaDataEmit 和其他 MetaData COM 接口?

[英]How do I access IMetaDataEmit and other MetaData COM interfaces from C# or F#?

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM