Created attachment 10089 [details]
When a WCF service implements a method which has a return type which is an interface, and the ServiceKnownType attribute is used to register the concrete implementation, it is ignored and a System.Runtime.Serialization.SerializationException is thrown.
When running the same code under .NET, it works fine.
The attached solution demonstrates the problem - when running in .NET it works, when running with mono you will see the following error when the server tries to respond:
Exception Type 'Common.ResponseImpl' is unexpected. The type should either be re
gistered as a known type, or DataContractResolver should be used.
The behaviour therefore seems to be different between mono and .NET, so I believe it is a bug.
Is anyone aware of a workaround other than re-implementing to not use interfaces as the return type?