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
- LinearGradientBrush.cs
- HttpVersion.cs
- SimpleWebHandlerParser.cs
- DataGridViewCellPaintingEventArgs.cs
- OrderedDictionary.cs
- DodSequenceMerge.cs
- SafeSystemMetrics.cs
- IOException.cs
- RelationshipEnd.cs
- Calendar.cs
- MediaPlayerState.cs
- MemoryMappedViewStream.cs
- BamlCollectionHolder.cs
- ContextDataSourceContextData.cs
- ExpanderAutomationPeer.cs
- ControlParameter.cs
- Int64Converter.cs
- SyntaxCheck.cs
- TableItemPattern.cs
- GifBitmapEncoder.cs
- PtsCache.cs
- Pair.cs
- coordinatorfactory.cs
- OleDbStruct.cs
- ZipFileInfoCollection.cs
- CqlParserHelpers.cs
- DiagnosticTrace.cs
- InheritanceAttribute.cs
- InlinedAggregationOperatorEnumerator.cs
- PagePropertiesChangingEventArgs.cs
- SpeechSeg.cs
- ProfileGroupSettings.cs
- SqlExpressionNullability.cs
- DialogWindow.cs
- UnionCqlBlock.cs
- ProjectionPlan.cs
- Array.cs
- AssociationSet.cs
- DefaultEventAttribute.cs
- webbrowsersite.cs
- TabItem.cs
- InstalledFontCollection.cs
- CodeDirectiveCollection.cs
- Baml2006KnownTypes.cs
- Model3D.cs
- ContentValidator.cs
- AccessControlList.cs
- HttpBufferlessInputStream.cs
- MetadataArtifactLoaderComposite.cs
- DataTableTypeConverter.cs
- WSDualHttpBinding.cs
- QueryExtender.cs
- ObjectDataSourceChooseTypePanel.cs
- XmlStreamNodeWriter.cs
- SecurityTokenResolver.cs
- CqlBlock.cs
- SafeProcessHandle.cs
- parserscommon.cs
- ObservableCollection.cs
- RecordManager.cs
- DragEvent.cs
- BaseCollection.cs
- SystemResourceKey.cs
- StaticDataManager.cs
- Stylesheet.cs
- SplayTreeNode.cs
- TreeNodeMouseHoverEvent.cs
- WriteTimeStream.cs
- CompositeActivityDesigner.cs
- GregorianCalendar.cs
- GPRECT.cs
- SplitContainer.cs
- BinHexDecoder.cs
- loginstatus.cs
- HierarchicalDataBoundControl.cs
- FunctionOverloadResolver.cs
- PtsHelper.cs
- RichTextBoxConstants.cs
- XmlAttribute.cs
- ServerTooBusyException.cs
- DataKeyPropertyAttribute.cs
- CheckBoxField.cs
- FixedTextPointer.cs
- XamlWriter.cs
- SocketException.cs
- GlyphTypeface.cs
- XamlTypeMapperSchemaContext.cs
- EntityViewContainer.cs
- UdpDiscoveryMessageFilter.cs
- NativeCompoundFileAPIs.cs
- LayoutEditorPart.cs
- DesignerVerb.cs
- hresults.cs
- ChildTable.cs
- Opcode.cs
- MessageSmuggler.cs
- Animatable.cs
- AuthenticationService.cs
- EventBuilder.cs
- regiisutil.cs