Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / SingletonInstanceContextProvider.cs / 1 / SingletonInstanceContextProvider.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel; using System.ServiceModel.Channels; internal class SingletonInstanceContextProvider : InstanceContextProviderBase { InstanceContext singleton; object thisLock; internal SingletonInstanceContextProvider(DispatchRuntime dispatchRuntime) : base(dispatchRuntime) { this.thisLock = new Object(); } internal InstanceContext SingletonInstance { get { if (this.singleton == null) { lock (this.thisLock) { if (this.singleton == null) { InstanceContext instanceContext = this.DispatchRuntime.SingletonInstanceContext; if (instanceContext == null) { instanceContext = new InstanceContext(this.DispatchRuntime.ChannelDispatcher.Host, false); } if (instanceContext.State == CommunicationState.Created) { instanceContext.Open(); } //Set the IsUsercreated flag to false for singleton mode even in cases when users create their own runtime. instanceContext.IsUserCreated = false; //Delay assigning the potentially newly created InstanceContext (till after its opened) to this.Singleton //to ensure that it is opened only once. this.singleton = instanceContext; } } } return this.singleton; } } #region IInstanceContextProvider Members public override InstanceContext GetExistingInstanceContext(Message message, IContextChannel channel) { ServiceChannel serviceChannel = this.GetServiceChannelFromProxy(channel); if (serviceChannel != null && serviceChannel.HasSession) { this.SingletonInstance.BindIncomingChannel(serviceChannel); } return this.SingletonInstance; } public override void InitializeInstanceContext(InstanceContext instanceContext, Message message, IContextChannel channel) { //no-op } public override bool IsIdle(InstanceContext instanceContext) { //By default return false return false; } 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
- StateWorkerRequest.cs
- FileUpload.cs
- BitmapEffectInput.cs
- Section.cs
- Pair.cs
- DispatcherObject.cs
- QuaternionKeyFrameCollection.cs
- DataError.cs
- PointHitTestParameters.cs
- PtsHost.cs
- GeneratedContractType.cs
- PasswordBox.cs
- KeyBinding.cs
- ButtonBase.cs
- ProfileSection.cs
- Geometry.cs
- UserPreferenceChangingEventArgs.cs
- GrammarBuilderDictation.cs
- PassportAuthenticationEventArgs.cs
- X509CertificateStore.cs
- ItemCheckEvent.cs
- FieldDescriptor.cs
- HttpCookiesSection.cs
- EntityDataSource.cs
- ArrayConverter.cs
- Tag.cs
- ClrPerspective.cs
- DragStartedEventArgs.cs
- WebZone.cs
- ReflectionServiceProvider.cs
- _ScatterGatherBuffers.cs
- HttpConfigurationContext.cs
- EntityDataReader.cs
- RuntimeWrappedException.cs
- _FtpDataStream.cs
- RelatedCurrencyManager.cs
- DataContract.cs
- UrlMappingsModule.cs
- TdsEnums.cs
- SetStoryboardSpeedRatio.cs
- FormatConvertedBitmap.cs
- ComponentCollection.cs
- SmtpAuthenticationManager.cs
- DataGridState.cs
- ZipIOBlockManager.cs
- Compiler.cs
- EntityDataSourceQueryBuilder.cs
- PreviewPageInfo.cs
- Double.cs
- ColumnHeaderConverter.cs
- UrlMapping.cs
- TraceSection.cs
- ValidationSummary.cs
- WebPartsPersonalization.cs
- TextDecorationCollection.cs
- IWorkflowDebuggerService.cs
- FormViewDesigner.cs
- Selector.cs
- MessageBox.cs
- ResourceReader.cs
- OdbcException.cs
- FullTextBreakpoint.cs
- RemotingAttributes.cs
- PropertyValueChangedEvent.cs
- UrlUtility.cs
- HttpRuntimeSection.cs
- WindowsListViewScroll.cs
- ModelPerspective.cs
- DataTableReaderListener.cs
- RangeValuePattern.cs
- MemoryPressure.cs
- CodeSnippetCompileUnit.cs
- AssemblyFilter.cs
- SqlHelper.cs
- Bidi.cs
- IdentityReference.cs
- TextBoxBase.cs
- CompletedAsyncResult.cs
- WorkflowApplicationTerminatedException.cs
- sqlcontext.cs
- Vector.cs
- XmlSerializerFactory.cs
- RefreshEventArgs.cs
- EventLogPermission.cs
- FunctionImportElement.cs
- Atom10FormatterFactory.cs
- ProfileEventArgs.cs
- ScopelessEnumAttribute.cs
- COAUTHIDENTITY.cs
- BitmapVisualManager.cs
- SqlException.cs
- InputReferenceExpression.cs
- EncryptedData.cs
- Trace.cs
- AmbientLight.cs
- HybridObjectCache.cs
- XmlDictionary.cs
- GridViewSortEventArgs.cs
- InstalledVoice.cs
- CallContext.cs