That is correct -- there are 7 different types of vehicle networks, depending on how you look at it. None of these are ethernet, usb, or anything on your PC so you need a vehicle network interface box/cable. It's basically a gateway between your PC and the car. Most tools will let you send and receive raw bits/bytes so you can do almost anything with almost any tool; it'll just vary in difficulty, speed, and effort.
There's a published international standard API defined by society of automotive engineers called SAE J2534 and everything else uses it's own proprietary-little-driver. The big difference among boxes is speed, control, technical support, etc just like you'd experience with any other product. I work at DrewTech and we make the J2534 Mongoose cable. I don't have a lot of C# experience, but I can send you some example C# code that would get you started. I'm a lot better at C/C++ than C# so don't throw tomatoes.
The ELM is a popular, dirt-cheap interface box that falls into the proprietary category. It's fine but be prepared to reinvent the wheel, access the serial port directly, and make your own driver. A lot of people go this route and it's ok for some hobbyists. But you won't exactly get a business standing behind it with 8am-5pm phone based technical support.