Отражатели могут получить высокоуровневую версию кода MSIL вашего приложения .NET, но это не означает, что его обязательно использовать / взламывать ... Большая часть кода не будет иметь смысла для случайного прочтения без имена личных переменных и функций, а также другие вещи, к которым .NET Reflector не может получить доступ без файла PDB.
Очевидно, что если вы используете какой-либо приличный обфускатор (лично мне нравится {smartassembly}, но из-за отсутствия перекрестного запутывания), то вы потеряете все его защиты только для добавленной стоимости номеров строк, что не совсем справедливый компромисс.
В любом случае, номера строк переоценены!