First of all, I would like to discourage this "hiding" activity. It would be to naive to defend your files against real reverse engineering, and most of the rest of the users won't see your strings anyway. However, I must admit that I don't know your goal, maybe you really need such thing. (It's a good idea to start questions with explaining your ultimate goals.)
So, as Manfred already advised, you can use some obfuscation product. As some products are commercial, and we should not promote them, you should find some product by yourself:
Read the documentation on each product to see how you can use it. Yes, you can obfuscate the DLL (in .NET, there are no real difference between DLLs and other assemblies), but it can be done in coordination with all the assemblies using it, apparently. All obfuscators can do it.
Now, if all you want is to obfuscate only the string data, you can easily self-obfuscate it by yourself. First of all, you should not use hard-coded string data anyway, so you need to have some data structures with string values. You need to separate data from code. Just encrypt the data using any encryption method of your choice (there are enough already implemented in .NET BCL) and create the files with encrypted data. Add this files to some .resx resources. When you need a string during run-time, get its encrypted value from resource, decrypt and use it. This is really easy. Again, the question is: why?