I think it comes down to what you want to do. If you could give some more info on that it can help.
For example, part of Rhino’s functionality is available as open source (based on OpenNURBS). If this functionality is sufficient, you could just use the NuGet package of Rhino3dmIO and don’t bother about COM or RhinoCommon at all. https://www.nuget.org/packages?q=3dm
On the other hand, using COM you can send any scripted command to Rhino. As virtually all commands are scriptable, Rhino functionality is exposed in that way. And, again, using a plug-in on Rhino side to accept one command, or plugin object, through COM from CATIA seems like a possible solution to me.