I would like to know how to programatically send HTTP request to a host (e.g. www.example.com) over Tor. My preferred environment is C# on Windows.
You need a Socks5 library for c#, that you then can use to communicate over tor.
One example of such library is : https://github.com/ThrDev/Socks5
There is also a example here: http://www.codeproject.com/Articles/5954/C-class-for-connecting-via-a-SOCKS-Proxy-Server
Typically what you need to do is to use a library and connect to the proxy.
'Hostname' will need to be '127.0.0.1' or 'localhost'.
The 'Port' will need to be set to '9150'. (if using tor browser bundle it might be a different port).
The 'Type' will be set to 'Socks5'.