Como posso passar uma List <Interface> pelo WCF?

Eu tenho um serviço WCF onde estou tentando retornar uma lista (onde IWatchable é uma interface personalizada que eu construí) em um dos meus contratos de operação. Quando eu testo o serviço no cliente, o método retorna umobject[] ao invés deList<IWatchable>. É possível retornar uma lista de IWatchable, uma vez que IWatchable é uma interface com o WCF?

Método:

public List<IWatchable> GetWorkload( Guid nodeId, int maximum )

IWatchable:

public interface IWatchable
{
    string ActionName { get; set; }
    Guid ActionReference { get; set; }
}

Espero que um pouco mais de informação seja útil ...

Eu tenho uma interface derivada:

public interface IAMRAWatchable: IWatchable

E três implementações concretas deIAMRAWatchable:

public class InstrumentationWatch: IAMRAWatchable
public class OutputWatch: IAMRAWatchable
etc...

No meu método WCF que retornaList<IWatchable> Eu quero mandar umInstrumentationWatch e umOutputWatch para o cliente ... Isso é possível ou eu estou indo sobre isso da maneira errada?

Resolvido

Graças a John eu encontrei a minha solução.KnownType não estava funcionando desde que eu estava usandoList<IWatchable> - Então, agrupei minha lista em uma nova classe e adicionei os atributos a ela. Eu precisarei refatorar meu código, mas para outros que estão interessados ​​aqui está a classe:

[DataContract]
[KnownType( typeof( InstrumentationWatch ) )]
[KnownType( typeof( OutputWatch ) )]
public class WorkInfo
{
    [DataMember]
    public List<IWatchable> WorkQueue { get; set; }
}

e meu método WCF:

public WorkInfo GetWorkload( Guid nodeId, int maximum )

questionAnswers(1)

yourAnswerToTheQuestion