Obfuscar
Open source obfuscation tool for .NET assemblies
...You can achieve such simply via default settings. Hide class/method/property/event names that you don't want to expose. This is irreversible. String contents can be compressed so that end users won't easily learn them. However, this is reversible by certain tools.