Forum Moderators: phranque
When you pay for bespoke code you get the source - there are no exceptions.
Not delivering the source code is normal in many situations.I can only think of one - when you are contracting services for a specific period of time, put simply, a rental agreement.
For the record, if you specified the language in which the code had to be written, C# by the sound of things, this implies, with no possible escape clause, that you required the source code for the simple reason that you have specified the language in which the code must be delivered
Not delivering the source code is normal in many situations. It all depends on the way it has been worded in the contract (if any exists) and the country and intellectual property laws there. If the OP asked for a working solution according to his wishes, he got one in the form of the compiled code.