What is the issue with DataContract?  I am wondering if you can just implement your own dummy DataContractAttribute that does nothing.  That would allow you to revert these #ifs.