• Как обфусцировать исходный код C#?

    Ну удаление Tab'ов и пробелов - не слишком полезное дело. Такая "обфускация" будет вылечена одним сочетанием клавиш для форматирования кода. Генерация лишних методов - тоже, так как такой код легко обнаруживается подсчётом количества использований (и эта фича уже встроена в Visual Studio [хотя, может, дело в Resharper... впрочем, не столь важно]) (хотя... удаление таких методов будет риском, если в проекте используется рефлексия, так что польза всё же может быть).

    Переименование полей и методов - очень хороший способ. Хотя вместо латиницы и цифр ("hg6fvk") я бы советовал Unicode-символы (вроде, C# это позволяет). По моему опыту (иногда приходится работать с обфусцированным кодом на Java) воспринимать китайские/корейские/ещё_какие-то иероглифы гораздо сложнее, чем всякие "a", "ab", "cc" и т.д.

    Куда больше смысла в генерации плохочитаемых синтаксических конструкций. Замена прямых обращений к полям/методам на рефлексию заметно усложнит код. Обфускация строк и генерация рядом функций для их деобфускации тоже даст очень хороший эффект (многим будет лень вручную вызывать деобфусцирующие функции, чтобы понять, что записано в строке). Ну и т.д. Впрочем, платой за такие действия будет производительность.