Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Dispatcher / DurableOperationContext.cs / 1305376 / DurableOperationContext.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel.Description; public static class DurableOperationContext { public static Guid InstanceId { get { ServiceDurableInstance durableInstance = GetInstanceContextExtension(); return durableInstance.InstanceId; } } public static void AbortInstance() { ServiceDurableInstance durableInstance = GetInstanceContextExtension(); durableInstance.AbortInstance(); } public static void CompleteInstance() { ServiceDurableInstance durableInstance = GetInstanceContextExtension(); durableInstance.MarkForCompletion(); } internal static void BeginOperation() { OperationContext operationContext = OperationContext.Current; if (operationContext != null) { operationContext.Extensions.Add(new DurableOperationContext.IsInOperation()); } } internal static void EndOperation() { OperationContext operationContext = OperationContext.Current; if (operationContext != null) { DurableOperationContext.IsInOperation isInOperation = operationContext.Extensions.Find(); if (isInOperation != null) { operationContext.Extensions.Remove(isInOperation); } } } static ServiceDurableInstance GetInstanceContextExtension() { OperationContext operationContext = OperationContext.Current; if (operationContext == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException( SR2.GetString( SR2.OnlyCallableFromServiceOperation, typeof(DurableOperationContext).Name))); } IsInOperation isInOperation = operationContext.Extensions.Find (); if (isInOperation == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException( SR2.GetString( SR2.OnlyCallableWhileInOperation, typeof(DurableOperationContext).Name))); } InstanceContext currentInstanceContext = operationContext.InstanceContext; if (currentInstanceContext == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException( SR2.GetString( SR2.OnlyCallableFromServiceOperation, typeof(DurableOperationContext).Name))); } ServiceDurableInstance durableInstance = currentInstanceContext.Extensions.Find (); if (durableInstance == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new InvalidOperationException( SR2.GetString( SR2.OnlyCallableFromDurableService, typeof(DurableOperationContext).Name, typeof(DurableServiceAttribute).Name))); } return durableInstance; } class IsInOperation : IExtension { public void Attach(OperationContext owner) { } public void Detach(OperationContext owner) { } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DetailsViewCommandEventArgs.cs
- COM2AboutBoxPropertyDescriptor.cs
- SoapTypeAttribute.cs
- PackageDocument.cs
- SqlConnectionFactory.cs
- EncryptedType.cs
- RelationshipSet.cs
- PropertyEntry.cs
- NetworkInformationPermission.cs
- HuffmanTree.cs
- ColumnResult.cs
- PriorityItem.cs
- BlurEffect.cs
- IisTraceWebEventProvider.cs
- Rectangle.cs
- DataViewSetting.cs
- SlipBehavior.cs
- VideoDrawing.cs
- Ipv6Element.cs
- COM2IProvidePropertyBuilderHandler.cs
- JapaneseCalendar.cs
- SingleKeyFrameCollection.cs
- DataRowCollection.cs
- BypassElement.cs
- ContextMenuStrip.cs
- UseManagedPresentationElement.cs
- WebBrowserProgressChangedEventHandler.cs
- XmlDocument.cs
- SymbolEqualComparer.cs
- ThicknessAnimationBase.cs
- ADConnectionHelper.cs
- TiffBitmapDecoder.cs
- RecordBuilder.cs
- DbConnectionPool.cs
- WebPartDisplayModeEventArgs.cs
- DeviceContext2.cs
- PerformanceCounterPermission.cs
- AstNode.cs
- ResourceReferenceKeyNotFoundException.cs
- SerializationInfoEnumerator.cs
- AnimationLayer.cs
- SqlGenerator.cs
- TableParaClient.cs
- ScrollChrome.cs
- DataGridGeneralPage.cs
- ServerValidateEventArgs.cs
- HttpRawResponse.cs
- SerializationFieldInfo.cs
- FlowLayoutPanel.cs
- RoleService.cs
- SourceFilter.cs
- XPathMultyIterator.cs
- MruCache.cs
- CriticalFinalizerObject.cs
- StrokeSerializer.cs
- HttpWriter.cs
- SpellerInterop.cs
- RetrieveVirtualItemEventArgs.cs
- ComponentConverter.cs
- IsolatedStorageFileStream.cs
- Operator.cs
- ProxyHelper.cs
- CodeMemberEvent.cs
- OutputCacheSettings.cs
- FormattedTextSymbols.cs
- AttachmentService.cs
- _ShellExpression.cs
- ConfigurationElement.cs
- IteratorFilter.cs
- validationstate.cs
- PhoneCall.cs
- DataGridViewCellStyleChangedEventArgs.cs
- StatusBar.cs
- TransportSecurityProtocol.cs
- AsyncOperation.cs
- RadioButton.cs
- PartialList.cs
- ExtentCqlBlock.cs
- HwndProxyElementProvider.cs
- WindowsStartMenu.cs
- NodeCounter.cs
- LabelAutomationPeer.cs
- PolicyFactory.cs
- ThumbAutomationPeer.cs
- EntityViewContainer.cs
- DataGridViewAccessibleObject.cs
- XmlDataSource.cs
- PackageDigitalSignatureManager.cs
- metadatamappinghashervisitor.cs
- XmlEntity.cs
- ExternalDataExchangeService.cs
- AssemblyBuilderData.cs
- DataGridViewLinkColumn.cs
- AutomationPropertyInfo.cs
- DefaultAutoFieldGenerator.cs
- SafeEventLogWriteHandle.cs
- UriSection.cs
- PointKeyFrameCollection.cs
- DoWhileDesigner.xaml.cs
- ListChunk.cs