Предполагая, что вам действительно нужно запутать код веб-службы, рассмотрите возможность разделения службы на две части: одна часть будет только контрактом на обслуживание (или WebMethods, если вы все еще используете ASMX).
Вся настоящая работа должна быть разбита на отдельную сборку. Вы можете запутать эту отдельную сборку, чтобы скрыть детали вашей реализации. Но оставьте сборку «сервисного слоя» нетронутой.