Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / OutputChannel.cs / 1 / OutputChannel.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel; using System.Diagnostics; using System.ServiceModel.Diagnostics; abstract class OutputChannel : ChannelBase, IOutputChannel { protected OutputChannel(ChannelManagerBase manager) : base(manager) { } public abstract EndpointAddress RemoteAddress { get; } public abstract Uri Via { get; } public IAsyncResult BeginSend(Message message, AsyncCallback callback, object state) { return this.BeginSend(message, this.DefaultSendTimeout, callback, state); } public IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state) { if (message == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); if (timeout < TimeSpan.Zero) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ArgumentOutOfRangeException("timeout", timeout, SR.GetString(SR.SFxTimeoutOutOfRange0))); ThrowIfDisposedOrNotOpen(); AddHeadersTo(message); this.EmitTrace(message); return OnBeginSend(message, timeout, callback, state); } public void EndSend(IAsyncResult result) { OnEndSend(result); } public override T GetProperty() { if (typeof(T) == typeof(IOutputChannel)) { return (T)(object)this; } T baseProperty = base.GetProperty (); if (baseProperty != null) { return baseProperty; } return default(T); } protected abstract void OnSend(Message message, TimeSpan timeout); protected abstract IAsyncResult OnBeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state); protected abstract void OnEndSend(IAsyncResult result); public void Send(Message message) { this.Send(message, this.DefaultSendTimeout); } public void Send(Message message, TimeSpan timeout) { if (message == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); if (timeout < TimeSpan.Zero) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ArgumentOutOfRangeException("timeout", timeout, SR.GetString(SR.SFxTimeoutOutOfRange0))); ThrowIfDisposedOrNotOpen(); AddHeadersTo(message); this.EmitTrace(message); OnSend(message, timeout); } protected virtual TraceRecord CreateSendTrace(Message message) { return MessageTransmitTraceRecord.CreateSendTraceRecord(message, this.RemoteAddress); } void EmitTrace(Message message) { if (DiagnosticUtility.ShouldTraceInformation) { TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.MessageSent, this.CreateSendTrace(message), this, null); } } protected virtual void AddHeadersTo(Message message) { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- documentsequencetextcontainer.cs
- ContainerSelectorActiveEvent.cs
- AnnotationObservableCollection.cs
- EntityViewGenerator.cs
- AuthenticationModulesSection.cs
- SymmetricKeyWrap.cs
- clipboard.cs
- TypeConverterHelper.cs
- SolidColorBrush.cs
- DataSetUtil.cs
- SqlDataSourceCustomCommandEditor.cs
- DbProviderFactories.cs
- ThicknessKeyFrameCollection.cs
- ClientTargetCollection.cs
- XmlSchemaAnyAttribute.cs
- IdentityHolder.cs
- DataTrigger.cs
- ChtmlMobileTextWriter.cs
- SynchronizedInputProviderWrapper.cs
- WebPageTraceListener.cs
- SqlErrorCollection.cs
- CodeStatementCollection.cs
- SystemIPInterfaceStatistics.cs
- FusionWrap.cs
- HiddenFieldPageStatePersister.cs
- ZipFileInfoCollection.cs
- CalendarAutomationPeer.cs
- InvalidProgramException.cs
- EntityCollectionChangedParams.cs
- CapabilitiesUse.cs
- TextWriterTraceListener.cs
- StickyNote.cs
- GeometryHitTestParameters.cs
- XmlArrayAttribute.cs
- ToolStripOverflow.cs
- HttpListenerException.cs
- ReferentialConstraint.cs
- BamlMapTable.cs
- MultiDataTrigger.cs
- CancellationTokenSource.cs
- SyndicationSerializer.cs
- TrackingSection.cs
- BaseParser.cs
- JsonMessageEncoderFactory.cs
- ButtonBase.cs
- BooleanSwitch.cs
- ExtentKey.cs
- SessionIDManager.cs
- PropertyReferenceSerializer.cs
- IUnknownConstantAttribute.cs
- SafeCryptoHandles.cs
- RoutedPropertyChangedEventArgs.cs
- TabRenderer.cs
- MemberCollection.cs
- FrugalMap.cs
- _NestedMultipleAsyncResult.cs
- PersonalizationAdministration.cs
- StaticExtensionConverter.cs
- PropertyStore.cs
- TagElement.cs
- RelatedEnd.cs
- DelegatedStream.cs
- CollectionViewGroupRoot.cs
- PageOutputColor.cs
- AppDomainProtocolHandler.cs
- EndpointConfigContainer.cs
- SingleKeyFrameCollection.cs
- FilterElement.cs
- EDesignUtil.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- MethodSet.cs
- SiteMapNodeItemEventArgs.cs
- ValueQuery.cs
- DataServiceRequest.cs
- AuthenticationSection.cs
- Helpers.cs
- AnonymousIdentificationModule.cs
- SmtpException.cs
- XmlAutoDetectWriter.cs
- ViewStateException.cs
- MenuAutomationPeer.cs
- RightsManagementUser.cs
- ExternalCalls.cs
- SafeTokenHandle.cs
- FontSourceCollection.cs
- XmlSerializerFaultFormatter.cs
- ModuleBuilder.cs
- TextViewBase.cs
- HtmlValidationSummaryAdapter.cs
- FixedPosition.cs
- SerialStream.cs
- ConfigurationSection.cs
- HttpPostServerProtocol.cs
- ICollection.cs
- BamlResourceSerializer.cs
- SamlAuthorizationDecisionClaimResource.cs
- Identity.cs
- ButtonColumn.cs
- RadioButtonAutomationPeer.cs
- ValidatingPropertiesEventArgs.cs