Search code examples
c#.netwcfcastle-dynamicproxydynamic-proxy

How to "really" down-cast a DynamicProxy back to its original type (to send over WCF)


OK, the situation is we have a class, PatientDto, and a DynamicProxy generated by Castle, PatientDtoProxy.

We're using this proxy in the Silverlight client, then want to send it back to the server via a WCF service call.

The WCF service Contract expects a PatientDto (ie not the proxy) and, as expected, blows up if you try to send anything else.

Essentially, we feel like we should be "casting" it back to a PatientDto to get things to work... but in reality, even if you cast the reference down to PatientDto, it doesn't change anything -- WCF still sees the object in memory as a PatientDtoProxy and blows up.

Obviously, doing a deep-copy into a new'ed up PatientDto is an option (and does work), but an unpleasant one. Any techniques we're just not thinking of?


Solution

  • What about using AutoMapper and mapping your proxy to a real PatientDto object. Or just manually mapping it yourself.