Question: Is there a way (reliable and preferably not commercial) to prevent from Reflector to reflect my source code???

Thanks,
Adi

Answer: 
No. Reflector looks at your assembly just like the .NET runtime would in order to generate native code to execute. The best you could hope for would be to [obfuscate](https://stackoverflow.com/questions/2525/best-net-obfuscation-toolsstrategy) your code and make it (somewhat) harder for the reader to understand.

Some pros and cons of performing the obfuscation can be found at [Should you obfuscate a commercial .Net application?](https://stackoverflow.com/questions/71195/should-you-obfuscate-a-commercial-net-application)
DISCLAIMER: I don't work for RedGate the makers of SmartAssembly. I'm just a very happy customer who found a good, affordable solution.

The choice is very simple, choose SmartAssembly! Don't waste your time or money with the other obfuscators in the marketplace. I spent more money in terms of non-billable hours evaluating competing products. They all had fatal flaws and were next to impossible to debug. SmartAssembly is an easy-to-use, well documented, polished application with excellent support. Post a question on their forum and expect an answer reasonably fast by the actual developers.

SmartAssembly is more than an obsfuscator. It has a slew of features, including a built-in, highly customizable crash report generator that your customers can automatically email to you. You can view these reports on either your own server or on red-gates servers. I can't tell you how useful this is when you're beta testing or releasing the product to customers. It also generates debugger files so you can debug any post-release issues you may encounter with your obsfucated product.

If you are delivering a commercial application, it makes sense to spend the money on a decent obsfuscator. A bad choice here can compromise your intellectual property or worse lead you to days of gruesome debugging. What would this cost in comparison to what SmartAssembly costs?