Jak przekazać listę <Interface> nad WCF?

Mam usługę WCF, w której próbuję zwrócić listę (gdzie IWatchable to niestandardowy interfejs, który zbudowałem) w jednym z moich kontraktów operacyjnych. Kiedy testuję usługę na kliencie, metoda zwracaobject[] zamiastList<IWatchable>. Czy jest możliwe zwrócenie listy IWatchable, ponieważ IWatchable jest interfejsem z WCF?

Metoda:

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

IWatchable:

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

Mam nadzieję, że trochę więcej informacji będzie pomocne ...

Mam interfejs pochodny:

public interface IAMRAWatchable: IWatchable

I trzy konkretne wdrożeniaIAMRAWatchable:

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

W mojej metodzie WCF, która zwracaList<IWatchable> Chcę wysłaćInstrumentationWatch i anOutputWatch do klienta ... Czy to możliwe, czy mam to w niewłaściwy sposób?

Zdecydowany

Dzięki Johnowi znalazłem swoje rozwiązanie.KnownType nie działał, odkąd używałemList<IWatchable> - Więc umieściłem moją listę w nowej klasie i dodałem do niej atrybuty. Muszę zmienić współczynnik kodu, ale dla innych zainteresowanych jest klasa:

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

i moja metoda WCF:

public WorkInfo GetWorkload( Guid nodeId, int maximum )

questionAnswers(1)

yourAnswerToTheQuestion