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
- StringExpressionSet.cs
- RelationshipConstraintValidator.cs
- ObjectRef.cs
- RowsCopiedEventArgs.cs
- X509InitiatorCertificateServiceElement.cs
- RenderingBiasValidation.cs
- NamespaceQuery.cs
- EventLogWatcher.cs
- Transform.cs
- Evidence.cs
- FixedDSBuilder.cs
- TimeZoneNotFoundException.cs
- FlowLayoutPanel.cs
- ObjectConverter.cs
- MSAANativeProvider.cs
- XslVisitor.cs
- SystemResources.cs
- errorpatternmatcher.cs
- GenericWebPart.cs
- AspNetHostingPermission.cs
- OleAutBinder.cs
- CodePageUtils.cs
- UnsafeNativeMethods.cs
- __Error.cs
- AutomationEvent.cs
- CachedBitmap.cs
- BindingsCollection.cs
- Int16Animation.cs
- __ComObject.cs
- WebColorConverter.cs
- httpstaticobjectscollection.cs
- AuthorizationSection.cs
- Symbol.cs
- EncryptedData.cs
- RubberbandSelector.cs
- xml.cs
- TypedTableBaseExtensions.cs
- SqlFactory.cs
- InputMethodStateTypeInfo.cs
- SqlDataSourceRefreshSchemaForm.cs
- Hash.cs
- SocketInformation.cs
- ClientSession.cs
- EntityDataSourceDesigner.cs
- PersonalizationAdministration.cs
- basevalidator.cs
- LongTypeConverter.cs
- PiiTraceSource.cs
- FullTrustAssembly.cs
- KoreanLunisolarCalendar.cs
- FusionWrap.cs
- GetWinFXPath.cs
- MobileSysDescriptionAttribute.cs
- Trace.cs
- OrderedParallelQuery.cs
- CompressedStack.cs
- ArgumentOutOfRangeException.cs
- FieldNameLookup.cs
- StylusDevice.cs
- UIElementParagraph.cs
- BuilderElements.cs
- TextHintingModeValidation.cs
- BoundPropertyEntry.cs
- ClientApiGenerator.cs
- CursorConverter.cs
- HttpWriter.cs
- HttpApplication.cs
- AnimationClockResource.cs
- Padding.cs
- EndOfStreamException.cs
- TreeNodeStyle.cs
- ClientTargetCollection.cs
- SynchronizationContext.cs
- InstancePersistenceEvent.cs
- SqlCrossApplyToCrossJoin.cs
- ExcCanonicalXml.cs
- TextCharacters.cs
- ParseChildrenAsPropertiesAttribute.cs
- EntityDataSourceViewSchema.cs
- SettingsPropertyNotFoundException.cs
- ViewBase.cs
- QueryStringConverter.cs
- Or.cs
- XmlSigningNodeWriter.cs
- DesignerDataTable.cs
- SchemaLookupTable.cs
- WebPartConnectionsCloseVerb.cs
- _TimerThread.cs
- MembershipSection.cs
- RadioButton.cs
- EventDescriptor.cs
- DataRecord.cs
- LinkedResource.cs
- SmtpNetworkElement.cs
- ExpanderAutomationPeer.cs
- BasePattern.cs
- PropertyEmitter.cs
- ExpressionNormalizer.cs
- ItemType.cs
- ZipIOExtraField.cs