Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Routing / System / ServiceModel / Routing / SendOperation.cs / 1305376 / SendOperation.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Routing { using System; using System.Collections.Generic; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.Transactions; using System.Runtime; using System.Configuration; class SendOperation { ListendpointTraits; int currentIndex; bool sent; Dictionary exceptions; OperationContext operationContext; Type routerContract; public SendOperation(IEnumerable endpoints, Type routerContract, OperationContext operationContext) { this.operationContext = operationContext; this.routerContract = routerContract; this.endpointTraits = new List (); foreach (ServiceEndpoint endpoint in endpoints) { this.endpointTraits.Add(new RoutingEndpointTrait(routerContract, endpoint, operationContext)); } if (this.endpointTraits.Count == 0) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR.BackupListEmpty)); } } public RoutingEndpointTrait CurrentEndpoint { get { Fx.Assert(this.currentIndex < this.endpointTraits.Count, "CurrentEndpoint should not be accessed after TryMoveToAlternate returned false!"); RoutingEndpointTrait trait = this.endpointTraits[this.currentIndex]; return trait; } } public bool HasAlternate { get { return this.currentIndex < (this.endpointTraits.Count - 1); } } public bool Sent { get { return this.sent; } } public void PrepareMessage(Message message) { if (this.exceptions != null) { message.Properties["Exceptions"] = this.exceptions; } } public void TransmitSucceeded(Transaction sendTransaction) { if (sendTransaction == null) { this.sent = true; } } public bool TryMoveToAlternate(Exception exception) { if (this.exceptions == null) { this.exceptions = new Dictionary (); } this.exceptions[this.CurrentEndpoint.Endpoint.Name] = exception; this.sent = false; if (++this.currentIndex < this.endpointTraits.Count) { return true; } return false; } } } // 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
- XmlSchemaSimpleTypeList.cs
- XmlChildEnumerator.cs
- DrawingContextWalker.cs
- ObjectListFieldCollection.cs
- XPathSelfQuery.cs
- WebPartDescriptionCollection.cs
- TraceUtility.cs
- Merger.cs
- PropertyGridView.cs
- SafeRightsManagementPubHandle.cs
- PriorityRange.cs
- GeneralTransform.cs
- DiscreteKeyFrames.cs
- Int64AnimationBase.cs
- CollectionView.cs
- XamlParser.cs
- XPathChildIterator.cs
- SqlTriggerAttribute.cs
- DateTimeOffsetConverter.cs
- ObjectAnimationUsingKeyFrames.cs
- CodeTypeReferenceCollection.cs
- BidOverLoads.cs
- TemplateKeyConverter.cs
- GeneralEndpointIdentity.cs
- TabItemWrapperAutomationPeer.cs
- FileSystemEventArgs.cs
- MutexSecurity.cs
- ClientSideQueueItem.cs
- SortDescription.cs
- SelectorItemAutomationPeer.cs
- UIElement.cs
- TypeUtil.cs
- ApplicationDirectoryMembershipCondition.cs
- TextWriter.cs
- ProcessHost.cs
- TextFormatterHost.cs
- HealthMonitoringSectionHelper.cs
- CodeArrayIndexerExpression.cs
- TypedOperationInfo.cs
- IntPtr.cs
- localization.cs
- sqlcontext.cs
- NullReferenceException.cs
- EmbeddedObject.cs
- DropTarget.cs
- TextTreeObjectNode.cs
- ComponentEditorPage.cs
- ReflectionPermission.cs
- MailMessageEventArgs.cs
- ImpersonationContext.cs
- DataGridParentRows.cs
- BasicCellRelation.cs
- KeyEventArgs.cs
- PropertyBuilder.cs
- XmlName.cs
- DelayDesigner.cs
- StateManagedCollection.cs
- DesignTimeParseData.cs
- XmlNamedNodeMap.cs
- SqlLiftIndependentRowExpressions.cs
- ModuleBuilder.cs
- x509store.cs
- SortableBindingList.cs
- SingleSelectRootGridEntry.cs
- XslTransform.cs
- DebugInfo.cs
- TextDecorationCollection.cs
- ArgumentException.cs
- ScriptResourceAttribute.cs
- DataGridCaption.cs
- ObjectStateEntry.cs
- TimeoutValidationAttribute.cs
- ViewLoader.cs
- NativeMsmqMessage.cs
- Inflater.cs
- WindowPattern.cs
- Timer.cs
- WebPartEventArgs.cs
- WaitForChangedResult.cs
- DirectionalLight.cs
- ExceptionUtil.cs
- TableLayoutRowStyleCollection.cs
- DBConnection.cs
- Roles.cs
- StringComparer.cs
- Faults.cs
- Geometry.cs
- RemotingServices.cs
- DataViewSettingCollection.cs
- MimeTypeAttribute.cs
- Stack.cs
- Expression.cs
- PartitionedDataSource.cs
- ModuleBuilderData.cs
- EntitySetRetriever.cs
- DbCommandDefinition.cs
- VersionUtil.cs
- ToolStripPanel.cs
- NumberFormatInfo.cs
- EntityChangedParams.cs