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
- WebConfigurationHostFileChange.cs
- StylusSystemGestureEventArgs.cs
- regiisutil.cs
- NamedPermissionSet.cs
- EntityClassGenerator.cs
- TCEAdapterGenerator.cs
- ZipIOExtraFieldZip64Element.cs
- DefaultPerformanceCounters.cs
- SafePEFileHandle.cs
- OuterGlowBitmapEffect.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ControlIdConverter.cs
- DataSourceCacheDurationConverter.cs
- ToolZone.cs
- IdnMapping.cs
- XamlStyleSerializer.cs
- SynchronizedCollection.cs
- ThicknessConverter.cs
- ApplicationBuildProvider.cs
- TimeoutException.cs
- AssemblyAttributesGoHere.cs
- SelectionRange.cs
- NavigationWindowAutomationPeer.cs
- XsltSettings.cs
- BuildDependencySet.cs
- XmlNodeReader.cs
- WebPartConnectionsConfigureVerb.cs
- BitmapFrameEncode.cs
- EventKeyword.cs
- SafeSecurityHandles.cs
- XPathChildIterator.cs
- DeviceSpecificChoice.cs
- Propagator.Evaluator.cs
- SecUtil.cs
- QueryUtil.cs
- EdmComplexPropertyAttribute.cs
- WebCodeGenerator.cs
- FileUpload.cs
- MimeWriter.cs
- CompiledXpathExpr.cs
- DataReceivedEventArgs.cs
- WebScriptClientGenerator.cs
- DataGridViewColumnHeaderCell.cs
- CollectionViewProxy.cs
- dbenumerator.cs
- SqlConnection.cs
- DistributedTransactionPermission.cs
- ProviderConnectionPoint.cs
- XmlAutoDetectWriter.cs
- ManagementQuery.cs
- RandomNumberGenerator.cs
- BaseTypeViewSchema.cs
- HashCodeCombiner.cs
- CachedCompositeFamily.cs
- DrawListViewItemEventArgs.cs
- DebugHandleTracker.cs
- SurrogateDataContract.cs
- TraceFilter.cs
- SimpleColumnProvider.cs
- UIElementPropertyUndoUnit.cs
- ResourceAttributes.cs
- XmlSchemaSet.cs
- DecoderExceptionFallback.cs
- ErrorStyle.cs
- ContainerFilterService.cs
- XmlText.cs
- OutputCacheProfile.cs
- SecurityImpersonationBehavior.cs
- TableLayoutColumnStyleCollection.cs
- BitmapCodecInfo.cs
- BamlRecordHelper.cs
- AliasExpr.cs
- DataRowChangeEvent.cs
- BufferBuilder.cs
- ComponentEditorPage.cs
- Label.cs
- ManagementOptions.cs
- GraphicsPath.cs
- HtmlInputControl.cs
- PathFigureCollectionValueSerializer.cs
- XDeferredAxisSource.cs
- TwoPhaseCommit.cs
- WindowsTooltip.cs
- DesignerTransactionCloseEvent.cs
- WebGetAttribute.cs
- RectKeyFrameCollection.cs
- Byte.cs
- ToolboxService.cs
- PEFileEvidenceFactory.cs
- XmlCharCheckingReader.cs
- SqlTrackingService.cs
- ParameterElement.cs
- PageStatePersister.cs
- DataBoundControl.cs
- AssemblyBuilder.cs
- Button.cs
- TargetParameterCountException.cs
- ToolStripItemTextRenderEventArgs.cs
- DocumentCollection.cs
- ResXDataNode.cs