From my experience with obfuscators in C#, if you use factory pattern or resolving classes on the fly it might be problematic to use them, because some of them will break the code.
Anyway, you will have to do heavy testing to the client after obfuscation to see if all works correctly as expected.