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
- NotifyParentPropertyAttribute.cs
- ProcessModuleCollection.cs
- DbConnectionPool.cs
- SegmentInfo.cs
- ToolboxCategory.cs
- DateTimeParse.cs
- Model3DGroup.cs
- ToolboxCategory.cs
- RegexCode.cs
- StringPropertyBuilder.cs
- ColorConvertedBitmap.cs
- QueryPageSettingsEventArgs.cs
- ScriptRef.cs
- XmlDataSourceDesigner.cs
- ObjRef.cs
- FixedSOMElement.cs
- AmbientProperties.cs
- MeasurementDCInfo.cs
- Attachment.cs
- DbUpdateCommandTree.cs
- ZoneButton.cs
- MergeFailedEvent.cs
- MdImport.cs
- ModifierKeysConverter.cs
- ScrollItemPattern.cs
- SmiRecordBuffer.cs
- ClientSession.cs
- RepeaterItemCollection.cs
- HttpModulesSection.cs
- Converter.cs
- ExeConfigurationFileMap.cs
- DataTableMappingCollection.cs
- RuleSetReference.cs
- AssociationSetEnd.cs
- PersonalizableTypeEntry.cs
- PenLineJoinValidation.cs
- TryExpression.cs
- CannotUnloadAppDomainException.cs
- Module.cs
- UndoEngine.cs
- EntityClientCacheKey.cs
- OdbcPermission.cs
- EventWaitHandle.cs
- DetailsViewUpdateEventArgs.cs
- IListConverters.cs
- SmtpException.cs
- StyleModeStack.cs
- Util.cs
- SqlVersion.cs
- DetailsViewRow.cs
- Thickness.cs
- SchemaCollectionCompiler.cs
- ThrowOnMultipleAssignment.cs
- RepeatInfo.cs
- GridViewRowEventArgs.cs
- ProtocolElement.cs
- SourceFileBuildProvider.cs
- TypeExtensionConverter.cs
- ToolStripDropDownClosingEventArgs.cs
- DefaultIfEmptyQueryOperator.cs
- PriorityChain.cs
- WebException.cs
- ComponentSerializationService.cs
- ScriptReferenceEventArgs.cs
- MarkedHighlightComponent.cs
- RayMeshGeometry3DHitTestResult.cs
- StrokeSerializer.cs
- SkinBuilder.cs
- SettingsAttributes.cs
- NetTcpSection.cs
- _NTAuthentication.cs
- ControlBuilderAttribute.cs
- PtsHost.cs
- BindingManagerDataErrorEventArgs.cs
- RSAPKCS1SignatureFormatter.cs
- ProfileSection.cs
- ChangeTracker.cs
- XmlDocumentType.cs
- ProtocolElementCollection.cs
- DefaultObjectMappingItemCollection.cs
- TCEAdapterGenerator.cs
- ConfigurationStrings.cs
- TraceHwndHost.cs
- PointCollectionConverter.cs
- GetMemberBinder.cs
- TreeNodeCollection.cs
- LogLogRecordEnumerator.cs
- WorkflowApplicationCompletedException.cs
- XmlUtil.cs
- DataTableMappingCollection.cs
- HtmlSelect.cs
- DataReaderContainer.cs
- Merger.cs
- CollectionViewSource.cs
- ToolboxItemCollection.cs
- WebPartDisplayModeCancelEventArgs.cs
- XmlSchemaInferenceException.cs
- PageParserFilter.cs
- DataRecordInternal.cs
- CancelEventArgs.cs