public string SampleMethod(string msg) { InstanceContext ic = OperationContext.Current.InstanceContext; //Retrieve the InstanceContext extension you added during creation time. MyInstanceContextExtension extension = ic.Extensions.Find <MyInstanceContextExtension>(); Console.WriteLine("InstanceContext ID : " + extension.InstanceId); Console.WriteLine("Service object ID : " + this.id); // Retrieve the ChannelDispatcher IContextChannel extension. ChannelTrackerExtension channelExtension = OperationContext.Current.Channel.Extensions.Find <ChannelTrackerExtension>(); Console.WriteLine("Channel tracker says the channel hash code: {0}.", channelExtension.ChannelHashCode); // Retrieve the service host custom context: ServiceHostContext srvContext = OperationContext.Current.Host.Extensions.Find <ServiceHostContext>(); if (srvContext != null) { Console.WriteLine("ServiceHost object hash: " + srvContext.ID); } //you have the state object and can retrieve whatever info you need Console.WriteLine("The caller said: \"{0}\"", msg); return("The service greets you: " + msg); }
public void Initialize(InstanceContext instanceContext, Message message) { MyInstanceContextExtension extension = new MyInstanceContextExtension(); //Add your custom InstanceContex extension that will let you associate state with this instancecontext instanceContext.Extensions.Add(extension); }