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
- XmlDataSource.cs
- XmlSchemaFacet.cs
- IsolatedStorageSecurityState.cs
- Point.cs
- PerspectiveCamera.cs
- HtmlShim.cs
- DetailsView.cs
- HttpResponseWrapper.cs
- DataGridCommandEventArgs.cs
- TablePattern.cs
- Model3D.cs
- HtmlInputFile.cs
- StructuredTypeInfo.cs
- ColorConverter.cs
- ReflectionUtil.cs
- Hashtable.cs
- QueryOutputWriter.cs
- SpeakProgressEventArgs.cs
- SimplePropertyEntry.cs
- RectKeyFrameCollection.cs
- WebPartChrome.cs
- HebrewCalendar.cs
- SurrogateEncoder.cs
- XmlTextReader.cs
- COMException.cs
- DataControlImageButton.cs
- InstanceDataCollectionCollection.cs
- DocumentPage.cs
- SelectionListDesigner.cs
- MailAddress.cs
- WebPartsPersonalizationAuthorization.cs
- EventRoute.cs
- GeometryValueSerializer.cs
- SHA384.cs
- ApplicationContext.cs
- MultipartContentParser.cs
- FixedNode.cs
- PolyLineSegmentFigureLogic.cs
- Parallel.cs
- LifetimeServices.cs
- DataGridViewRowHeaderCell.cs
- DbDataRecord.cs
- InvalidCommandTreeException.cs
- GeneralTransform.cs
- RegionIterator.cs
- WorkflowInstanceSuspendedRecord.cs
- XmlDigitalSignatureProcessor.cs
- CheckBoxPopupAdapter.cs
- LocalizationParserHooks.cs
- BindStream.cs
- FontStretch.cs
- TemplateControlBuildProvider.cs
- GlyphTypeface.cs
- QueryExpr.cs
- HttpHandlersInstallComponent.cs
- ContentPresenter.cs
- XPathDocumentNavigator.cs
- ObjectHelper.cs
- XmlDictionaryWriter.cs
- ConditionCollection.cs
- Lasso.cs
- UnSafeCharBuffer.cs
- MetadataCache.cs
- DataControlImageButton.cs
- SafeRegistryHandle.cs
- RequestQueryProcessor.cs
- Geometry.cs
- ModelItemDictionaryImpl.cs
- MetabaseServerConfig.cs
- SystemIcons.cs
- AppDomainInstanceProvider.cs
- SafeNativeMethods.cs
- DataSourceListEditor.cs
- AQNBuilder.cs
- ButtonBase.cs
- ToolboxItemAttribute.cs
- AutomationEventArgs.cs
- PropertyGridEditorPart.cs
- ComPlusDiagnosticTraceSchemas.cs
- MD5CryptoServiceProvider.cs
- Perspective.cs
- Guid.cs
- ResourceExpression.cs
- TypeLibConverter.cs
- OperatingSystem.cs
- RadialGradientBrush.cs
- mediaeventargs.cs
- templategroup.cs
- WsatConfiguration.cs
- XPathPatternParser.cs
- DataGridViewColumn.cs
- SamlNameIdentifierClaimResource.cs
- FontFamilyIdentifier.cs
- List.cs
- GZipStream.cs
- NameValueCollection.cs
- XmlElementAttribute.cs
- EdmToObjectNamespaceMap.cs
- ColumnHeader.cs
- BuildResultCache.cs