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
- ToolStripSplitStackLayout.cs
- SpecularMaterial.cs
- WindowsPen.cs
- CodeMemberMethod.cs
- RefExpr.cs
- Compilation.cs
- XmlReflectionMember.cs
- Int16AnimationUsingKeyFrames.cs
- StringSource.cs
- RegexMatchCollection.cs
- PathSegment.cs
- CompensatableTransactionScopeActivity.cs
- EditorZone.cs
- TimelineCollection.cs
- EntityContainer.cs
- PersistenceTypeAttribute.cs
- TrackingProfile.cs
- BamlLocalizableResource.cs
- NamedPipeTransportSecurity.cs
- RotationValidation.cs
- IdentityHolder.cs
- TransformerConfigurationWizardBase.cs
- RegisteredDisposeScript.cs
- XmlSerializationReader.cs
- CustomCategoryAttribute.cs
- BinaryParser.cs
- GridViewUpdatedEventArgs.cs
- FixedNode.cs
- NativeMethods.cs
- DoWhileDesigner.xaml.cs
- BuildProvider.cs
- BamlResourceContent.cs
- DropDownHolder.cs
- TemplateColumn.cs
- Int64.cs
- ActivityExecutionContext.cs
- Msec.cs
- ApplicationInfo.cs
- MiniCustomAttributeInfo.cs
- CacheOutputQuery.cs
- Boolean.cs
- CqlGenerator.cs
- CommonProperties.cs
- EnumDataContract.cs
- FrameworkTemplate.cs
- AuditLevel.cs
- DropDownList.cs
- SecurityElement.cs
- DynamicResourceExtensionConverter.cs
- ButtonRenderer.cs
- SystemException.cs
- MemberPath.cs
- SHA1Managed.cs
- ImageCodecInfoPrivate.cs
- HybridObjectCache.cs
- XmlElement.cs
- IconBitmapDecoder.cs
- UnsafeNativeMethods.cs
- GeometryHitTestResult.cs
- SourceFileBuildProvider.cs
- SeparatorAutomationPeer.cs
- SecurityContext.cs
- TableParagraph.cs
- InstancePersistence.cs
- ListViewDataItem.cs
- AppDomainUnloadedException.cs
- XPathScanner.cs
- ImageSourceConverter.cs
- _ConnectOverlappedAsyncResult.cs
- RequestTimeoutManager.cs
- SmiSettersStream.cs
- DependencyPropertyConverter.cs
- _SSPISessionCache.cs
- EventPrivateKey.cs
- FillBehavior.cs
- ActiveXHelper.cs
- IteratorFilter.cs
- LinkedDataMemberFieldEditor.cs
- PermissionSet.cs
- CustomValidator.cs
- XmlAggregates.cs
- AutomationElementCollection.cs
- LoginCancelEventArgs.cs
- HeaderElement.cs
- SimpleWebHandlerParser.cs
- UnionExpr.cs
- InternalDispatchObject.cs
- ConfigXmlCDataSection.cs
- LongValidator.cs
- WindowsNonControl.cs
- DataServiceQueryOfT.cs
- FlowDocumentScrollViewer.cs
- ArgumentDirectionHelper.cs
- WebPartHelpVerb.cs
- DocumentPageViewAutomationPeer.cs
- IncrementalHitTester.cs
- BinaryMethodMessage.cs
- NavigationService.cs
- DataBindingCollection.cs
- MatrixUtil.cs