Here is the problem, okay besides my customer's broken architecture:

Backend DB uses an entity data class. WebSvcA passes entity. WebSvcB also passes entity.

So what we have is: Entity.Class1, WebSvcA.Class1, and WebSvcB.Class1.

Their solution? A Util.dll with convert functions that go every which way.

I feel ill.

Are there any recommendations? Such as Entity.Class1 impleneting some serialization interface such that the proxy classes are unnecessary? I'm looking in to an automated (non-reflective) way to serialize between the 3 classes as they are all the same. Still, I can't help thinking there is a more clever way (other than changing the architecture which is NOT an option so don't ask).