Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / ServiceModel / Dispatcher / DurableRuntimeValidator.cs / 1305376 / DurableRuntimeValidator.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Dispatcher
{
using System.ServiceModel.Description;
using System.Workflow.Runtime;
using System.Runtime;
class DurableRuntimeValidator
{
ConcurrencyMode concurrencyMode;
UnknownExceptionAction exceptionAction;
bool saveStateInOperationTransaction;
bool validated;
public DurableRuntimeValidator(bool saveStateInOperationTransaction, UnknownExceptionAction exceptionAction)
{
this.saveStateInOperationTransaction = saveStateInOperationTransaction;
this.exceptionAction = exceptionAction;
this.validated = false;
}
public ConcurrencyMode ConcurrencyMode
{
get
{
if (!this.validated)
{
ValidateRuntime();
}
return concurrencyMode;
}
}
public void ValidateRuntime()
{
if (!this.validated)
{
Fx.Assert(
OperationContext.Current != null &&
OperationContext.Current.EndpointDispatcher != null &&
OperationContext.Current.EndpointDispatcher.DispatchRuntime != null,
"There shouldn't have been a null value in " +
"OperationContext.Current.EndpointDispatcher.DispatchRuntime.");
this.concurrencyMode = OperationContext.Current.EndpointDispatcher.DispatchRuntime.ConcurrencyMode;
if (this.concurrencyMode == ConcurrencyMode.Multiple)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new InvalidOperationException(
SR2.GetString(SR2.ConcurrencyMultipleNotSupported)));
}
if (this.saveStateInOperationTransaction && this.concurrencyMode != ConcurrencyMode.Single)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new InvalidOperationException(
SR2.GetString(SR2.SaveStateInTransactionRequiresSingle)));
}
if (this.concurrencyMode == ConcurrencyMode.Reentrant
&& this.exceptionAction == UnknownExceptionAction.AbortInstance)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
new InvalidOperationException(
SR2.GetString(SR2.ConcurrencyReentrantAndAbortNotSupported)));
}
this.validated = true;
}
}
}
}
// 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
- Terminate.cs
- FamilyTypeface.cs
- FloaterBaseParagraph.cs
- RegexBoyerMoore.cs
- BitmapEffectInputConnector.cs
- HttpRequestCacheValidator.cs
- AttributeCollection.cs
- SplitterPanel.cs
- ACE.cs
- HitTestResult.cs
- ManifestSignedXml.cs
- Rectangle.cs
- ServiceDesigner.cs
- DataGridViewControlCollection.cs
- ToolStripPanelRenderEventArgs.cs
- FacetDescription.cs
- SqlGatherConsumedAliases.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Byte.cs
- HttpResponse.cs
- coordinator.cs
- AppDomainAttributes.cs
- StreamUpgradeAcceptor.cs
- SchemaDeclBase.cs
- ISessionStateStore.cs
- TypeConverterMarkupExtension.cs
- FocusChangedEventArgs.cs
- ImageMapEventArgs.cs
- PropertyEmitter.cs
- MetadataImporterQuotas.cs
- XmlDeclaration.cs
- SecurityTokenAttachmentMode.cs
- DataObjectFieldAttribute.cs
- OdbcFactory.cs
- RenderTargetBitmap.cs
- SimpleRecyclingCache.cs
- DataGridViewIntLinkedList.cs
- ObjectKeyFrameCollection.cs
- CellParaClient.cs
- Tuple.cs
- LinkedResourceCollection.cs
- SingleStorage.cs
- ButtonChrome.cs
- EntityDataSourceColumn.cs
- CodeComment.cs
- TextElementEnumerator.cs
- CultureSpecificCharacterBufferRange.cs
- XmlILConstructAnalyzer.cs
- HtmlUtf8RawTextWriter.cs
- PartBasedPackageProperties.cs
- RoleManagerSection.cs
- OciHandle.cs
- PersistenceTypeAttribute.cs
- WebPartChrome.cs
- TrackingSection.cs
- MethodToken.cs
- WebPartRestoreVerb.cs
- Multiply.cs
- XmlSchemaSequence.cs
- ReadOnlyDataSourceView.cs
- InputLangChangeEvent.cs
- MenuAutoFormat.cs
- WebPartConnectionsCancelEventArgs.cs
- ScrollViewerAutomationPeer.cs
- BufferedWebEventProvider.cs
- Stacktrace.cs
- PcmConverter.cs
- LoginName.cs
- ApplicationServiceManager.cs
- TransformPatternIdentifiers.cs
- ScriptingWebServicesSectionGroup.cs
- SystemIcmpV6Statistics.cs
- TextEditorThreadLocalStore.cs
- HttpRawResponse.cs
- RemotingConfiguration.cs
- InfoCard.cs
- FixedTextSelectionProcessor.cs
- TextTreeExtractElementUndoUnit.cs
- ProvidePropertyAttribute.cs
- WebPartEditorApplyVerb.cs
- DataGridItemCollection.cs
- FromReply.cs
- CopyOfAction.cs
- SmiContext.cs
- AppSettings.cs
- ComPlusTypeLoader.cs
- EpmTargetPathSegment.cs
- StaticSiteMapProvider.cs
- ReachPageContentCollectionSerializer.cs
- WebServiceClientProxyGenerator.cs
- EventLogTraceListener.cs
- TypographyProperties.cs
- XNameTypeConverter.cs
- HttpRuntimeSection.cs
- ProxyHwnd.cs
- KeySpline.cs
- LeaseManager.cs
- ProtectedConfiguration.cs
- Run.cs
- ReadOnlyDataSource.cs