如何在C#源代码中生成COM互操作代理?

这个问题是保罗亚历山大回答“是否应签署互操作程序集”这一问题的后续问题。 。

根据Interop程序集的复杂程度 – 您可以将代理代码生成到单独的.CS / .VB文件中,并将其直接编译到程序集中。 然后,您不必担心强名称问题。

我如何将COM库的互操作代理代码生成为C#源代码?

我想可以用tlbimp完成,然后用Reflector提取源代码。 有人做过这个还是有更简单的方法?

看看以下MSDN文章:

  • 如何:手动创建包装器 (谈谈如何手动创建互操作组件。)

一旦你有了互操作程序集,使用像Reflector这样的工具来反汇编它并生成原始的C#源代码。 Reflector.FileDisassembler让这很容易。

现在,您可以将生成的C#/ VB源直接包含到程序集中。

我不知道更简单的方法,并通过Reflector提取接口描述。 但是在VS 2010中,Microsoft会自动为您执行此操作。