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
- ApplicationFileCodeDomTreeGenerator.cs
- XhtmlBasicObjectListAdapter.cs
- DiagnosticTrace.cs
- SourceSwitch.cs
- EncoderParameter.cs
- ItemCheckEvent.cs
- QilVisitor.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- ColorConverter.cs
- KeyInfo.cs
- PropertyGridCommands.cs
- SQLRoleProvider.cs
- SelectedDatesCollection.cs
- RbTree.cs
- InputDevice.cs
- MailMessageEventArgs.cs
- _ConnectionGroup.cs
- MessageQueueCriteria.cs
- StorageModelBuildProvider.cs
- ClientRolePrincipal.cs
- StringAnimationBase.cs
- WmfPlaceableFileHeader.cs
- ContainerControl.cs
- ObjectStateManager.cs
- WsatConfiguration.cs
- TextComposition.cs
- SerializationException.cs
- SizeAnimationUsingKeyFrames.cs
- RequestCacheValidator.cs
- Config.cs
- SqlError.cs
- ToolStripItemCollection.cs
- MemoryResponseElement.cs
- SpinWait.cs
- safemediahandle.cs
- SafeProcessHandle.cs
- ConfigXmlSignificantWhitespace.cs
- EpmSyndicationContentDeSerializer.cs
- Win32.cs
- Inline.cs
- ExceptionUtility.cs
- PointAnimationUsingPath.cs
- DragDrop.cs
- CookielessData.cs
- AttributeParameterInfo.cs
- NCryptSafeHandles.cs
- TabItemAutomationPeer.cs
- XpsFont.cs
- TargetInvocationException.cs
- InvalidCommandTreeException.cs
- DesignerActionHeaderItem.cs
- Point3DCollectionValueSerializer.cs
- ToolStripDesignerUtils.cs
- ImageAnimator.cs
- BuildManager.cs
- DependencyPropertyKind.cs
- DocumentScope.cs
- DBPropSet.cs
- Parsers.cs
- TriggerBase.cs
- ConfigurationValidatorBase.cs
- DesignerVerbCollection.cs
- XPathBuilder.cs
- SourceItem.cs
- Timeline.cs
- MouseButtonEventArgs.cs
- DataGridCell.cs
- ReferenceSchema.cs
- LinkClickEvent.cs
- CompilationUnit.cs
- SchemaCollectionCompiler.cs
- DataConnectionHelper.cs
- BitStack.cs
- ListView.cs
- XPathAxisIterator.cs
- SimpleBitVector32.cs
- ByteAnimation.cs
- HttpClientCertificate.cs
- LinkArea.cs
- SqlDataSourceQueryEditorForm.cs
- AttachmentCollection.cs
- AnimationLayer.cs
- AffineTransform3D.cs
- MediaTimeline.cs
- PointAnimationUsingKeyFrames.cs
- ActivityPreviewDesigner.cs
- PnrpPeerResolver.cs
- FilterElement.cs
- RelationshipNavigation.cs
- SqlDataSourceSelectingEventArgs.cs
- WindowsTitleBar.cs
- WindowsListViewItem.cs
- ClientScriptManager.cs
- SafeSecurityHelper.cs
- ImageListUtils.cs
- OleDbRowUpdatedEvent.cs
- BaseDataList.cs
- MachineKeyConverter.cs
- StateRuntime.cs
- ColumnCollection.cs