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
- MetadataStore.cs
- JournalEntryListConverter.cs
- CompilationRelaxations.cs
- OracleTransaction.cs
- QueryProcessor.cs
- TargetParameterCountException.cs
- MatrixIndependentAnimationStorage.cs
- ProxyWebPart.cs
- TraceSection.cs
- TlsSspiNegotiation.cs
- TemplateManager.cs
- DocumentPage.cs
- GPPOINT.cs
- ImageAttributes.cs
- DoubleCollectionValueSerializer.cs
- PauseStoryboard.cs
- AnnouncementEndpoint.cs
- DbDataRecord.cs
- ScriptResourceHandler.cs
- returneventsaver.cs
- RoleService.cs
- TypeContext.cs
- OdbcConnectionFactory.cs
- CuspData.cs
- DateTimeFormatInfoScanner.cs
- BoundField.cs
- Tablet.cs
- CustomSignedXml.cs
- LinkedResourceCollection.cs
- MetadataException.cs
- InputMethodStateChangeEventArgs.cs
- PDBReader.cs
- ChtmlPageAdapter.cs
- tooltip.cs
- Parser.cs
- XmlNodeComparer.cs
- Journaling.cs
- CalendarAutoFormatDialog.cs
- QuaternionRotation3D.cs
- SqlInternalConnection.cs
- Logging.cs
- SecurityStandardsManager.cs
- Empty.cs
- DashStyle.cs
- _ProxyChain.cs
- ArrangedElement.cs
- MenuBase.cs
- BinaryParser.cs
- RegionInfo.cs
- XmlSignatureManifest.cs
- Types.cs
- WebBrowserNavigatedEventHandler.cs
- HMACSHA512.cs
- RC2CryptoServiceProvider.cs
- MenuEventArgs.cs
- ListControlBuilder.cs
- ObjectSet.cs
- CategoryNameCollection.cs
- HtmlInputControl.cs
- ObjectDataSourceStatusEventArgs.cs
- SoapConverter.cs
- ConfigXmlElement.cs
- ResourceExpressionBuilder.cs
- ScrollableControl.cs
- WindowsRebar.cs
- QueryParameter.cs
- HMACRIPEMD160.cs
- SrgsNameValueTag.cs
- UrlPropertyAttribute.cs
- ControlPropertyNameConverter.cs
- HandlerBase.cs
- ButtonStandardAdapter.cs
- Int32CAMarshaler.cs
- DescendantOverDescendantQuery.cs
- SignedXml.cs
- _HTTPDateParse.cs
- BamlResourceContent.cs
- UriScheme.cs
- ToolBar.cs
- DeleteIndexBinder.cs
- Scheduler.cs
- SingleObjectCollection.cs
- D3DImage.cs
- Repeater.cs
- ContentControl.cs
- WebPartAuthorizationEventArgs.cs
- CommandBindingCollection.cs
- Switch.cs
- LogicalTreeHelper.cs
- Int32Storage.cs
- WorkItem.cs
- OleDbWrapper.cs
- RewritingProcessor.cs
- InfoCardKeyedHashAlgorithm.cs
- HtmlTextArea.cs
- TracedNativeMethods.cs
- RecordsAffectedEventArgs.cs
- OwnerDrawPropertyBag.cs
- QueryResult.cs
- SwitchElementsCollection.cs