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
- RoleGroupCollection.cs
- AsnEncodedData.cs
- LoadRetryConstantStrategy.cs
- TraceContextRecord.cs
- StylusPlugin.cs
- ILGenerator.cs
- DateTimeValueSerializerContext.cs
- LogicalExpr.cs
- DataControlCommands.cs
- WarningException.cs
- AdjustableArrowCap.cs
- ExpressionBuilder.cs
- ApplyImportsAction.cs
- SQLUtility.cs
- RequestQueryParser.cs
- Accessible.cs
- ActivityPreviewDesigner.cs
- PropertyGeneratedEventArgs.cs
- FreezableCollection.cs
- NumberEdit.cs
- PasswordDeriveBytes.cs
- httpstaticobjectscollection.cs
- ServiceInstallComponent.cs
- ButtonDesigner.cs
- CancelEventArgs.cs
- SafeEventLogWriteHandle.cs
- LogicalExpr.cs
- ViewCellRelation.cs
- SolidColorBrush.cs
- PlaceHolder.cs
- DataBoundControlDesigner.cs
- XmlConvert.cs
- ExpressionParser.cs
- SortQuery.cs
- ActivationArguments.cs
- sitestring.cs
- LocationChangedEventArgs.cs
- _SslSessionsCache.cs
- GrammarBuilderPhrase.cs
- _SslStream.cs
- DictionaryGlobals.cs
- CustomValidator.cs
- SqlWorkflowInstanceStoreLock.cs
- SqlXmlStorage.cs
- DataGridViewTopLeftHeaderCell.cs
- XamlFilter.cs
- GlobalizationSection.cs
- SecurityPolicySection.cs
- WindowsImpersonationContext.cs
- DataGridLength.cs
- CodeDirectionExpression.cs
- isolationinterop.cs
- StateRuntime.cs
- UntypedNullExpression.cs
- LambdaReference.cs
- SystemInfo.cs
- ArgumentException.cs
- DataReceivedEventArgs.cs
- Style.cs
- XmlElement.cs
- FixedTextView.cs
- GroupBox.cs
- DynamicControlParameter.cs
- DBConnectionString.cs
- _SSPISessionCache.cs
- DynamicObject.cs
- EntitySetBase.cs
- dataobject.cs
- DropAnimation.xaml.cs
- ImageInfo.cs
- ObjectSecurityT.cs
- SchemaTypeEmitter.cs
- TypeDelegator.cs
- DataBoundControlHelper.cs
- FileChangesMonitor.cs
- ProcessModule.cs
- XmlSchemaSimpleTypeList.cs
- Bitmap.cs
- SimpleWebHandlerParser.cs
- SQLInt64.cs
- SoapServerMethod.cs
- TableRow.cs
- MimePart.cs
- QuaternionIndependentAnimationStorage.cs
- StagingAreaInputItem.cs
- SecuritySessionServerSettings.cs
- Model3D.cs
- EventRecordWrittenEventArgs.cs
- CannotUnloadAppDomainException.cs
- ZipFileInfoCollection.cs
- HuffModule.cs
- PanelDesigner.cs
- WorkflowViewElement.cs
- HotSpot.cs
- _ProxyRegBlob.cs
- XmlTextReaderImpl.cs
- ServiceChannelFactory.cs
- StaticContext.cs
- LinearKeyFrames.cs
- RepeaterItem.cs