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
- HttpChannelBindingToken.cs
- TextRunTypographyProperties.cs
- TemplatePagerField.cs
- CustomTypeDescriptor.cs
- ConditionalAttribute.cs
- JsonGlobals.cs
- ProcessManager.cs
- FocusWithinProperty.cs
- PeerApplicationLaunchInfo.cs
- DataRowCollection.cs
- Image.cs
- RuleInfoComparer.cs
- DataGridViewCellLinkedList.cs
- DashStyles.cs
- TraceData.cs
- DataControlFieldHeaderCell.cs
- StartUpEventArgs.cs
- ValidationContext.cs
- X509Certificate2Collection.cs
- X509Utils.cs
- TypeSource.cs
- IisTraceListener.cs
- ToolStripItemTextRenderEventArgs.cs
- ManagementScope.cs
- SolidColorBrush.cs
- DataSourceXmlTextReader.cs
- Point3DAnimationBase.cs
- MediaEntryAttribute.cs
- IPGlobalProperties.cs
- ControlPropertyNameConverter.cs
- EdgeProfileValidation.cs
- PriorityQueue.cs
- FillRuleValidation.cs
- ReturnValue.cs
- InputLanguageCollection.cs
- KeyValueInternalCollection.cs
- DtdParser.cs
- QilBinary.cs
- Profiler.cs
- URIFormatException.cs
- RC2.cs
- PositiveTimeSpanValidator.cs
- ResourcesBuildProvider.cs
- ZoneButton.cs
- MetadataCacheItem.cs
- remotingproxy.cs
- InvokeAction.cs
- TransformerConfigurationWizardBase.cs
- UrlPath.cs
- WindowsUpDown.cs
- FontSizeConverter.cs
- WebUtility.cs
- InputBindingCollection.cs
- Size3D.cs
- ArrayElementGridEntry.cs
- RecordConverter.cs
- HttpContextWrapper.cs
- updateconfighost.cs
- CodeAttachEventStatement.cs
- FragmentQueryProcessor.cs
- GlobalizationSection.cs
- SecurityElement.cs
- GenericPrincipal.cs
- messageonlyhwndwrapper.cs
- GridToolTip.cs
- ChildTable.cs
- WrappingXamlSchemaContext.cs
- NetworkInformationPermission.cs
- DocumentManager.cs
- CoreSwitches.cs
- DataPagerFieldItem.cs
- DisplayNameAttribute.cs
- NamespaceTable.cs
- WebMessageEncodingBindingElement.cs
- QuaternionAnimationBase.cs
- HtmlTableCellCollection.cs
- CodeRegionDirective.cs
- RelationshipSet.cs
- ServiceX509SecurityTokenProvider.cs
- SortAction.cs
- WorkflowDispatchContext.cs
- DrawingImage.cs
- GridView.cs
- Convert.cs
- PersonalizationDictionary.cs
- safex509handles.cs
- Facet.cs
- TransportSecurityHelpers.cs
- CodeDomSerializerBase.cs
- StorageMappingFragment.cs
- WebPartConnectionsCancelVerb.cs
- CellTreeNode.cs
- Location.cs
- PrintControllerWithStatusDialog.cs
- EventData.cs
- TraceShell.cs
- SvcMapFile.cs
- EventProviderBase.cs
- IisTraceWebEventProvider.cs
- ListGeneralPage.cs