Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / InputChannelBinder.cs / 1 / InputChannelBinder.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Diagnostics; class InputChannelBinder : IChannelBinder { IInputChannel channel; Uri listenUri; internal InputChannelBinder(IInputChannel channel, Uri listenUri) { if (!((channel != null))) { DiagnosticUtility.DebugAssert("InputChannelBinder.InputChannelBinder: (channel != null)"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("channel"); } this.channel = channel; this.listenUri = listenUri; } public IChannel Channel { get { return this.channel; } } public bool HasSession { get { return this.channel is ISessionChannel; } } public Uri ListenUri { get { return this.listenUri; } } public EndpointAddress LocalAddress { get { return this.channel.LocalAddress; } } public EndpointAddress RemoteAddress { get { #pragma warning suppress 56503 // [....], the property is really not implemented, cannot lie, API not public throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException()); } } public void Abort() { this.channel.Abort(); } public void CloseAfterFault(TimeSpan timeout) { this.channel.Close(timeout); } public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state) { return this.channel.BeginTryReceive(timeout, callback, state); } public bool EndTryReceive(IAsyncResult result, out RequestContext requestContext) { Message message; if (this.channel.EndTryReceive(result, out message)) { requestContext = this.WrapMessage(message); return true; } else { requestContext = null; return false; } } public IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state) { throw TraceUtility.ThrowHelperError(new NotImplementedException(), message); } public void EndSend(IAsyncResult result) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException()); } public void Send(Message message, TimeSpan timeout) { throw TraceUtility.ThrowHelperError(new NotImplementedException(), message); } public bool TryReceive(TimeSpan timeout, out RequestContext requestContext) { Message message; if (this.channel.TryReceive(timeout, out message)) { requestContext = this.WrapMessage(message); return true; } else { requestContext = null; return false; } } public IAsyncResult BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state) { throw TraceUtility.ThrowHelperError(new NotImplementedException(), message); } public Message EndRequest(IAsyncResult result) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException()); } public Message Request(Message message, TimeSpan timeout) { throw TraceUtility.ThrowHelperError(new NotImplementedException(), message); } public bool WaitForMessage(TimeSpan timeout) { return this.channel.WaitForMessage(timeout); } public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state) { return this.channel.BeginWaitForMessage(timeout, callback, state); } public bool EndWaitForMessage(IAsyncResult result) { return this.channel.EndWaitForMessage(result); } RequestContext WrapMessage(Message message) { if (message == null) { return null; } else { return new InputRequestContext(message, this); } } class InputRequestContext : RequestContextBase { InputChannelBinder binder; internal InputRequestContext(Message request, InputChannelBinder binder) : base(request, TimeSpan.Zero, TimeSpan.Zero) { this.binder = binder; } protected override void OnAbort() { } protected override void OnClose(TimeSpan timeout) { } protected override void OnReply(Message message, TimeSpan timeout) { } protected override IAsyncResult OnBeginReply(Message message, TimeSpan timeout, AsyncCallback callback, object state) { return new CompletedAsyncResult(callback, state); } protected override void OnEndReply(IAsyncResult result) { CompletedAsyncResult.End(result); } } } } // 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
- OutputWindow.cs
- PropertyPathConverter.cs
- XamlStream.cs
- ClassicBorderDecorator.cs
- DataGridViewBand.cs
- MailDefinition.cs
- OpCellTreeNode.cs
- Vector3DCollectionConverter.cs
- SpeechSynthesizer.cs
- IgnoreDeviceFilterElement.cs
- UnsafeNativeMethods.cs
- WinFormsComponentEditor.cs
- SqlConnectionFactory.cs
- Int64AnimationBase.cs
- ServiceMetadataPublishingElement.cs
- UnsafeNetInfoNativeMethods.cs
- BindingExpression.cs
- WebPartEditorCancelVerb.cs
- SharedUtils.cs
- CommonXSendMessage.cs
- RegexCaptureCollection.cs
- Endpoint.cs
- NonSerializedAttribute.cs
- Decimal.cs
- MetadataArtifactLoaderCompositeFile.cs
- RegistryKey.cs
- UIntPtr.cs
- FileSecurity.cs
- listitem.cs
- Pair.cs
- MethodBuilder.cs
- RenderData.cs
- SqlGenerator.cs
- ProviderIncompatibleException.cs
- RulePatternOps.cs
- WindowsListViewScroll.cs
- DataSourceHelper.cs
- Expander.cs
- ClosableStream.cs
- MailMessage.cs
- TextRenderer.cs
- PeerTransportSecurityElement.cs
- Header.cs
- ConnectionManagementSection.cs
- TableLayoutStyleCollection.cs
- StringArrayConverter.cs
- DataGridViewCellEventArgs.cs
- AdPostCacheSubstitution.cs
- DesignerRegionMouseEventArgs.cs
- SafePointer.cs
- CryptoConfig.cs
- TextParagraphCache.cs
- DataMember.cs
- RequestValidator.cs
- TrueReadOnlyCollection.cs
- EntitySetBaseCollection.cs
- XmlSchemaComplexType.cs
- Lasso.cs
- RtfToXamlReader.cs
- SessionEndingEventArgs.cs
- ClientCultureInfo.cs
- RegularExpressionValidator.cs
- LoadItemsEventArgs.cs
- AccessControlList.cs
- Error.cs
- Attributes.cs
- OdbcRowUpdatingEvent.cs
- PaginationProgressEventArgs.cs
- PropertyOverridesDialog.cs
- VarInfo.cs
- JsonSerializer.cs
- UriTemplateHelpers.cs
- EditorPartCollection.cs
- baseaxisquery.cs
- XamlWriter.cs
- DataTablePropertyDescriptor.cs
- ButtonColumn.cs
- glyphs.cs
- ProcessThread.cs
- InvalidDataException.cs
- DbConnectionStringCommon.cs
- TranslateTransform3D.cs
- XmlChoiceIdentifierAttribute.cs
- DataTableMapping.cs
- WebPartCancelEventArgs.cs
- DesignerActionPropertyItem.cs
- ShaperBuffers.cs
- DynamicRenderer.cs
- ObjectDataSourceSelectingEventArgs.cs
- RtfFormatStack.cs
- CharConverter.cs
- ItemsControl.cs
- CatalogPartCollection.cs
- ContentPropertyAttribute.cs
- HtmlTableCell.cs
- ToolstripProfessionalRenderer.cs
- XmlEventCache.cs
- PropertyDescriptorComparer.cs
- ConnectionStringsSection.cs
- TableLayoutPanelBehavior.cs