См. Этот пост: Защита кода .NET от обратного инжиниринга?
По сути, вы ничего не можете сделать, чтобы полностью защитить свой код от обратного инжиниринга. Лучшее, что вы можете сделать, это использовать такой инструмент, как Dotfuscator.
Если ваш код работает, вероятность того, что честный клиент попытается переписать его или подделать, невелика. Если клиент не честен, мало что можно сделать, чтобы это было эффективно.
Вместо того, чтобы беспокоиться об этом, беспокойтесь о производстве качественных продуктов, за которые будут платить честные клиенты.