<p>I'm experimenting with WCF Services, and have come across a problem with passing Interfaces.</p>

<p>This works:</p>

<pre><code>[ServiceContract]
public interface IHomeService
{
    [OperationContract]
    string GetString();
}
</code></pre>

<p>but this doesn't:</p>

<pre><code>[ServiceContract]
public interface IHomeService
{
    [OperationContract]
    IDevice GetInterface();
}
</code></pre>

<p>When I try to compile the client it fails on the GetInterface method. I get an Exception saying that it can't convert Object to IDevice.</p>

<p>On the clientside the IHomeService class correctly implements GetString with a string as it's returntype, but the GetInterface has a returntype of object. Why isn't it IDevice?</p>

You need to tell the WCF serializer which class to use to serialize the interface
```
```
[ServiceKnownType(typeof(ConcreteDeviceType)]
```
```