public interface ClientInterface { [OperationContract] void OnCallback(object aUpdatedObject); } [ServiceContract(SessionMode=SessionMode.Required, CallbackContract=typeof(ClientInterface))] public interface RequestInterface { [OperationContract] void Subscribe(); /* */ [OperationContract] TransmissionClass GetInterface(); } [KnownType(typeof(TransmissionClass))] public class RequestHandler : RequestInterface { private static int MAXIMUM = 32760; internal static RequestHandler Instance; private List iClients = new List(); ClientInterface channel; public RequestHandler() { Instance = this; } public TransmissionClass GetInterface() { Form1.AddText("method invoked by:" + Thread.CurrentContext.ToString()); List tList = new List(); for(int i = MAXIMUM; i >= 0; i--) { tList.Add(new TransmissionSubclass(i)); } MAXIMUM += 1; /* */ TransmissionClass tTC = new TransmissionClass("invokedMethod", tList); Form1.AddText("created:" + tTC); return tTC; } public void Subscribe() { channel = OperationContext.Current.GetCallbackChannel(); } public void Send() { try { channel.OnCallback("I love deadlines. I like the whooshing sound they make as they fly by."); } catch (Exception ex) { Form1.AddText(ex.GetType() + "|" + ex.Message); } } }