i have two web services. One with user functionality, one with admin functionality.
Both services effectively work with the same object types, for instance:
If you're controlling both ends of the communication, and both ends are .NET only, you could do this:
If you do this, when adding the service references, WCF will find and use that shared assembly, and not create new types for the entitites. In your case, you'd only ever have one type Contracts.Customer
or whatever you're dealing with.
This works only if you control both ends of the wire and have .NET on both ends! But in that case, it's a great way to share contracts - especially data contracts - across both the server and any number of clients.