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
- XPathNodeIterator.cs
- ParallelEnumerable.cs
- TemplateBamlTreeBuilder.cs
- BindableTemplateBuilder.cs
- QueueAccessMode.cs
- URIFormatException.cs
- DeferredRunTextReference.cs
- AssemblyAttributesGoHere.cs
- EntityDataSourceViewSchema.cs
- TimeSpanOrInfiniteConverter.cs
- CompositionCommandSet.cs
- DetailsViewDeleteEventArgs.cs
- ClassDataContract.cs
- TextSearch.cs
- CommentAction.cs
- FragmentNavigationEventArgs.cs
- RuleSettings.cs
- Brushes.cs
- ConstructorBuilder.cs
- ThreadInterruptedException.cs
- ResourceSet.cs
- GeneralTransform3DTo2DTo3D.cs
- listitem.cs
- ArgumentDesigner.xaml.cs
- CatalogPart.cs
- Style.cs
- WizardPanelChangingEventArgs.cs
- WorkflowRuntimeServiceElementCollection.cs
- DrawListViewItemEventArgs.cs
- StringComparer.cs
- MappedMetaModel.cs
- XmlSchemaComplexContent.cs
- XmlResolver.cs
- ObjectDataSourceMethodEventArgs.cs
- CompatibleComparer.cs
- HttpCapabilitiesEvaluator.cs
- ICollection.cs
- Int32.cs
- ModelPerspective.cs
- WebSysDisplayNameAttribute.cs
- DataColumn.cs
- IdentityManager.cs
- DbConnectionHelper.cs
- XmlDictionary.cs
- SystemNetHelpers.cs
- VersionedStreamOwner.cs
- StreamReader.cs
- CookieParameter.cs
- Setter.cs
- WebPartUtil.cs
- SqlDeflator.cs
- Maps.cs
- GlobalizationAssembly.cs
- EntitySetDataBindingList.cs
- PageSetupDialog.cs
- RoutedEvent.cs
- PeerNameRecord.cs
- XNodeValidator.cs
- BeginEvent.cs
- VirtualizingPanel.cs
- NamedPipeDuplicateContext.cs
- XmlILStorageConverter.cs
- Package.cs
- CodeIterationStatement.cs
- EngineSite.cs
- XmlTextAttribute.cs
- EmbossBitmapEffect.cs
- AmbientValueAttribute.cs
- SetIterators.cs
- CellConstantDomain.cs
- HttpCapabilitiesEvaluator.cs
- ListViewInsertedEventArgs.cs
- DomNameTable.cs
- ActivityXRefPropertyEditor.cs
- HttpInputStream.cs
- XmlReturnWriter.cs
- ExternalException.cs
- TimeStampChecker.cs
- DecimalFormatter.cs
- SafeFileMappingHandle.cs
- SizeAnimation.cs
- CodeTypeParameterCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- XmlChildEnumerator.cs
- PointUtil.cs
- TimelineGroup.cs
- ObjectListShowCommandsEventArgs.cs
- InvokeProviderWrapper.cs
- XmlSignificantWhitespace.cs
- Exception.cs
- TouchesCapturedWithinProperty.cs
- AlphabeticalEnumConverter.cs
- CompatibleComparer.cs
- ScrollContentPresenter.cs
- regiisutil.cs
- StateBag.cs
- TextCollapsingProperties.cs
- TransactionFlowProperty.cs
- SafeNativeMemoryHandle.cs
- IdentitySection.cs