Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / PerSessionInstanceContextProvider.cs / 1 / PerSessionInstanceContextProvider.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel; using System.ServiceModel.Channels; internal class PerSessionInstanceContextProvider : InstanceContextProviderBase { internal PerSessionInstanceContextProvider(DispatchRuntime dispatchRuntime) : base(dispatchRuntime) { } #region IInstanceContextProvider Members public override InstanceContext GetExistingInstanceContext(Message message, IContextChannel channel) { // Here is the flow for a Sessionful channel // 1. First request comes in on new channel. // 2. ServiceChannel.InstanceContext is returned which is null. // 3. InstanceBehavior.EnsureInstanceContext will create a new InstanceContext. // 4. this.InitializeInstanceContext is called with the newly created InstanceContext and the channel. // 5. If the channel is sessionful then its bound to the InstanceContext. // 6. Bind channel to the InstanceContext. // 7. For all further requests on the same channel, we will return ServiceChannel.InstanceContext which will be non null. ServiceChannel serviceChannel = this.GetServiceChannelFromProxy(channel); DiagnosticUtility.DebugAssert((serviceChannel != null), "System.ServiceModel.Dispatcher.PerSessionInstanceContextProvider.GetExistingInstanceContext(), serviceChannel != null"); return (serviceChannel != null) ? serviceChannel.InstanceContext : null; } public override void InitializeInstanceContext(InstanceContext instanceContext, Message message, IContextChannel channel) { ServiceChannel serviceChannel = GetServiceChannelFromProxy(channel); if (serviceChannel != null && serviceChannel.HasSession) { instanceContext.BindIncomingChannel(serviceChannel); } } public override bool IsIdle(InstanceContext instanceContext) { //By default return true return true; } public override void NotifyIdle(InstanceContextIdleCallback callback, InstanceContext instanceContext) { //no-op } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HScrollBar.cs
- PageFunction.cs
- Point4D.cs
- RegexStringValidator.cs
- ColumnHeaderCollectionEditor.cs
- WebHostedComPlusServiceHost.cs
- DebugView.cs
- RelOps.cs
- XmlSchemaRedefine.cs
- PostBackTrigger.cs
- TextTreeFixupNode.cs
- ParagraphVisual.cs
- HwndProxyElementProvider.cs
- SerializationStore.cs
- FunctionParameter.cs
- VerificationException.cs
- XamlFxTrace.cs
- ToolStripContentPanelRenderEventArgs.cs
- InvalidDataException.cs
- PropertiesTab.cs
- SqlDataReaderSmi.cs
- ReflectEventDescriptor.cs
- Propagator.ExtentPlaceholderCreator.cs
- ButtonField.cs
- DataGridSortCommandEventArgs.cs
- ApplicationHost.cs
- XmlSchemaInfo.cs
- XmlIlTypeHelper.cs
- ProxyWebPartManager.cs
- ImageListImage.cs
- DataTableMappingCollection.cs
- AssemblyLoader.cs
- NetNamedPipeBindingCollectionElement.cs
- WSSecurityPolicy11.cs
- FilteredAttributeCollection.cs
- XmlCharType.cs
- LocalClientSecuritySettingsElement.cs
- RowsCopiedEventArgs.cs
- ViewSimplifier.cs
- XsdBuildProvider.cs
- XNodeNavigator.cs
- VBIdentifierTrimConverter.cs
- SecureEnvironment.cs
- MulticastDelegate.cs
- XmlSchemaProviderAttribute.cs
- PolicyManager.cs
- ProxyWebPart.cs
- UserControl.cs
- DigitShape.cs
- ResXResourceReader.cs
- StrokeDescriptor.cs
- XmlQueryTypeFactory.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- Cloud.cs
- DataGridViewRow.cs
- ListSurrogate.cs
- SQLGuidStorage.cs
- NestPullup.cs
- DataTable.cs
- OleDbConnectionInternal.cs
- PartManifestEntry.cs
- CookieParameter.cs
- TreeNodeCollection.cs
- ToolStripSettings.cs
- PermissionSetTriple.cs
- BrowserTree.cs
- PhysicalFontFamily.cs
- FontStretchConverter.cs
- SecurityMessageProperty.cs
- CursorInteropHelper.cs
- TextRangeSerialization.cs
- EventLogReader.cs
- SourceFileInfo.cs
- CompilerResults.cs
- AdornerPresentationContext.cs
- Run.cs
- CompiledIdentityConstraint.cs
- DesignTimeValidationFeature.cs
- DrawingBrush.cs
- SqlUtils.cs
- SessionIDManager.cs
- SmiGettersStream.cs
- File.cs
- RemoteWebConfigurationHostServer.cs
- DefaultPropertyAttribute.cs
- ListViewInsertionMark.cs
- NumberSubstitution.cs
- XNodeValidator.cs
- HtmlElementCollection.cs
- StorageModelBuildProvider.cs
- NativeMethodsOther.cs
- StorageMappingItemLoader.cs
- WebPartVerb.cs
- ConditionCollection.cs
- MessageAction.cs
- DuplexChannelBinder.cs
- SerializationObjectManager.cs
- FormatConvertedBitmap.cs
- DataList.cs
- EventManager.cs