Noone can change your code because the DLL is compiled. You can't really stop people seeing the code if they want to decompile it though. If you want to make sure noone tries to spoof your DLL then you should assign it a strong name. Also, if you don't want the debugger to look inside then make sure that it's a Release version you deploy and don't provide the PDB file with it.