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
- SqlConnectionHelper.cs
- CompoundFileStorageReference.cs
- ElementUtil.cs
- DictionarySectionHandler.cs
- Helper.cs
- SchemaInfo.cs
- FragmentNavigationEventArgs.cs
- RadioButtonStandardAdapter.cs
- Button.cs
- EventArgs.cs
- BitmapEffectRenderDataResource.cs
- MailMessageEventArgs.cs
- EntityContainerEntitySetDefiningQuery.cs
- Debug.cs
- RequiredFieldValidator.cs
- FormViewDeletedEventArgs.cs
- MultiSelectRootGridEntry.cs
- _NativeSSPI.cs
- WindowAutomationPeer.cs
- CryptoProvider.cs
- QueryOperationResponseOfT.cs
- SQLBoolean.cs
- SizeChangedInfo.cs
- Transform.cs
- IndentTextWriter.cs
- SendActivityValidator.cs
- Selector.cs
- ColorConvertedBitmap.cs
- SQLResource.cs
- ToolStripDropDownMenu.cs
- BinaryExpressionHelper.cs
- ToolStripItemBehavior.cs
- ParseNumbers.cs
- ApplicationActivator.cs
- DbConnectionPoolGroup.cs
- ExpressionBinding.cs
- ColorIndependentAnimationStorage.cs
- ExtensionWindowResizeGrip.cs
- SchemaObjectWriter.cs
- DbBuffer.cs
- EmptyControlCollection.cs
- MulticastNotSupportedException.cs
- NetCodeGroup.cs
- SqlConnectionHelper.cs
- WmlLabelAdapter.cs
- MethodBuilder.cs
- ContainerControl.cs
- FormDocumentDesigner.cs
- FontStyleConverter.cs
- ZipFileInfoCollection.cs
- XPathArrayIterator.cs
- UITypeEditors.cs
- ModulesEntry.cs
- ReferenceConverter.cs
- shaperfactoryquerycachekey.cs
- M3DUtil.cs
- Rectangle.cs
- PriorityRange.cs
- ResourceManagerWrapper.cs
- DeferredReference.cs
- RemotingConfigParser.cs
- ProxyHwnd.cs
- ColorConvertedBitmap.cs
- QilName.cs
- TreeNodeMouseHoverEvent.cs
- GridViewRow.cs
- BitmapFrameDecode.cs
- MetadataStore.cs
- ActiveXMessageFormatter.cs
- TextEffectCollection.cs
- WebEventCodes.cs
- Sentence.cs
- ClientTargetCollection.cs
- IERequestCache.cs
- BrushValueSerializer.cs
- VisemeEventArgs.cs
- TaiwanCalendar.cs
- XpsS0ValidatingLoader.cs
- BindingList.cs
- DataTableTypeConverter.cs
- DataViewSettingCollection.cs
- TraceListeners.cs
- PropertyMetadata.cs
- HMACRIPEMD160.cs
- SelectionItemProviderWrapper.cs
- ToolStripManager.cs
- Symbol.cs
- AbsoluteQuery.cs
- UdpSocketReceiveManager.cs
- BitVec.cs
- CodeFieldReferenceExpression.cs
- FlowLayout.cs
- MLangCodePageEncoding.cs
- SqlRewriteScalarSubqueries.cs
- XamlTypeMapper.cs
- DataListComponentEditor.cs
- InfoCardAsymmetricCrypto.cs
- WsiProfilesElement.cs
- StrongBox.cs
- RegionInfo.cs