I know that C# allows interoperability with native code using PInvoke (An Overview of Managed/Unmanaged Code Interoperability)
We are planning to develop new code, and are considering 2 options:
- Native solution + managed (C#) wrapper around interop code that calls the native code.
- Fully managed solution
I would like to know whether there are any documented limitations to this interop ? (e.g - certain types that cannot be marshalled back and forth between managed/native, etc)
These limitations can affect our decision to use (or not use) option #1.