Yo,
I did some work on a .net binding for REAPER way back in 2014. Basically it has a standard reaper plugin dll which is compiled with c++/CLI which then loads a .net dll in a subfolder of the reaper plugin folder with the basename minus extension (.dll). The c++ side just passes a dictionary of function pointers over to a c# dll which converts them to delegates. From then on your in .net. So you can write extensions in C# / VB/ IronPython or any of these:
https://en.wikipedia.org/wiki/List_of_CLI_languages
It worked pretty well, the wrappers over the API are half done. The idea was to have nice wrappers over the ReaperAPI, but you can still just call the api directly.
I could get a .net Form inside Reaper which is pretty cool, but couldn't get it to dock. Basic IronPython support worked. YMMV.
There is a python script which generates files used by the .net dll and native .dll. It needs jinja2 so you'll need to run:
pip install jinja2
or similar before running the python script to get the code generation working.
Anyway, poorly documented code is here, go nuts or not:
https://bitbucket.org/fingerscode/scythe