Best way to access COM objects from C#

Tony the Pony picture Tony the Pony · Mar 11, 2009 · Viewed 52.3k times · Source

I am planning to use various objects that are exposed as COM objects. To make them easier to use, I'd like to wrap them as C# objects. What is the best approach for this?

Answer

Robert P picture Robert P · Mar 11, 2009

If the library is already registered, you can perform the following steps to have Visual Studio generate an interop assembly for you:

  • Open to your Visual Studio project.
  • Right click on 'References' (right under the project in your Solution Explorer) and select 'Add Reference'.
  • Select the COM tab. (If you don't see this, you have a project type that doesn't support COM.)
  • Select the Component you wish to interop with.
  • Select 'ok'.

This will be a class or set of C# classes that wrap all of the COM interface stuff with a normal C# class. Then you just use it like any other C# library. If the import of the reference worked well, you can explore it like any other reference and the methods/structs/classes/constants should show up in that namespace and intellisense.

This will get you started, at least. If this is deployed in a corporate environment or one you can control, this may be all you need.