本文整理汇总了C#中System.ServiceModel.InstanceContext.Close方法的典型用法代码示例。如果您正苦于以下问题:C# InstanceContext.Close方法的具体用法?C# InstanceContext.Close怎么用?C# InstanceContext.Close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.ServiceModel.InstanceContext
的用法示例。
在下文中一共展示了InstanceContext.Close方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InitializeInstanceContext
public void InitializeInstanceContext (InstanceContext instanceContext, Message message, IContextChannel channel)
{
var key = channel.SessionId ?? String.Empty;
pool [key] = instanceContext;
channel.Closed += delegate {
pool.Remove (key);
instanceContext.Close (); // FIXME: timeout?
};
}
示例2: CreateInstanceContext
InstanceContext CreateInstanceContext (MessageProcessingContext mrc)
{
InstanceContext iCtx = null;
DispatchRuntime dispatchRuntime = mrc.OperationContext.EndpointDispatcher.DispatchRuntime;
IInstanceContextProvider p = dispatchRuntime.InstanceContextProvider;
if (p != null) {
iCtx = p.GetExistingInstanceContext (mrc.IncomingMessage, mrc.OperationContext.Channel);
}
if (iCtx == null) {
ServiceHostBase host = dispatchRuntime.ChannelDispatcher.Host;
iCtx = new InstanceContext (dispatchRuntime.ChannelDispatcher.Host, null, false);
// FIXME: could be easier way to identify session channel
if ((mrc.Channel is ISessionChannel<IInputSession> || mrc.Channel is ISessionChannel<IDuplexSession>) && host.Description.Behaviors.Find<ServiceBehaviorAttribute> ().InstanceContextMode == InstanceContextMode.PerSession)
mrc.Channel.Closed += delegate { iCtx.Close (); };
}
iCtx.InstanceManager = new InstanceManager (dispatchRuntime);
return iCtx;
}
示例3: Main
static void Main(string[] args)
{
ServiceHost host = null;
try
{
using (host = new ServiceHost(typeof(Test)))
{
host.Open();
Thread.Sleep(2500);
Console.WriteLine("\npress any key to continue ...\n");
Console.ReadLine();
var testCallback = new TestCallback();
var context = new InstanceContext(testCallback);
// action
worker(1234567890, "gaga", context);
Console.WriteLine("\n+++ press any key to close a ServiceHost +++\n");
Console.ReadLine();
context.Close();
host.Close();
}
}
catch (CommunicationException ex)
{
if (host != null)
host.Abort();
Console.WriteLine(ex.Message);
Console.ReadLine();
}
catch (Exception ex)
{
if (host != null)
host.Abort();
Console.WriteLine(ex);
Console.ReadLine();
}
finally
{
Console.WriteLine("\n*** press any key to exit ... ***\n");
Console.ReadLine();
}
}