It's not possible to prevent decompling for a .NET application.
But you can try to obfuscate
your application. This doesn't prevent decompiling, but it makes the decompiled code very hard to understand for a human. However, there're de-obfuscators, but obfuscating can probably help you.
Here do you find a list of obfuscators: