This document discusses calling C++ code from C# and summarizes the UrhoSharp library which provides bindings between the C++ Urho3D game engine and C#. Key points:
- C++/CLI, COM, and P/Invoke can be used to call C++ from C#
- UrhoSharp exposes over 200 classes and 5000 methods of the Urho3D API to C# with similar performance
- The binding is generated automatically from Urho3D header and source files using a custom binding generator
- Object lifetime is managed by reference counting between the managed and native memory arenas