Question

I'm looking for the best approach to share types (the actual classes, not proxies) between a WCF service and a client. To that end, I defined the classes in a separate assembly that both service and client reference. I selected "Reuse types in all referenced assemblies" when generating the service reference in the client, but References.cs is generated with proxies for all classes.

This is exactly the same question as this one, but I don't know how to implement the accepted solution. One difference is that I'm using VS 2010 Beta 2.

import the complete service contract in code form

or

create your own ClientBase-derived class. It's really very easy

Assuming this is the best approach, I would appreciate a good link that covers how to do this. Is the approach outlined in the linked answer the best one?

Was it helpful?

Solution

I did two things in the same step. Not sure if one or both resolved the problem:

  1. Added a [DataContract(Namespace="My.Shared.Assemblys.Namespace")] to one of the classes in the shared assembly.
  2. Restarted VS 2010 Beta 2

OTHER TIPS

Had the same issue, but the I forgot to build assembly with DataContracts for client and thus it was generating it's own contracts. Once I've rebuilt the assembly - it reused them.

My issue with VS2010 SP1 was trying to use a class that derived from Dictionary<T,U> with a CollectionDataContract attribute. Seems VS won't reuse the type... I also tried Eric's suggestion above, but it didn't work.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top