Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / DiscoveryClientDuplexChannel.cs / 1305376 / DiscoveryClientDuplexChannel.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.ServiceModel.Discovery
{
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
class DiscoveryClientDuplexChannel : DiscoveryClientOutputChannel, IDuplexChannel
where TChannel : class, IDuplexChannel
{
public DiscoveryClientDuplexChannel(
ChannelManagerBase channelManagerBase,
IChannelFactory innerChannelFactory,
FindCriteria findCriteria,
DiscoveryEndpointProvider discoveryEndpointProvider)
: base(channelManagerBase, innerChannelFactory, findCriteria, discoveryEndpointProvider)
{
}
public EndpointAddress LocalAddress
{
get
{
if (this.InnerChannel == null)
{
return DiscoveryClientBindingElement.DiscoveryEndpointAddress;
}
return this.InnerChannel.LocalAddress;
}
}
public override IAsyncResult BeginSend(Message message, TimeSpan timeout, AsyncCallback callback, object state)
{
this.EnsureReplyTo(message);
return base.BeginSend(message, timeout, callback, state);
}
public override void Send(Message message, TimeSpan timeout)
{
this.EnsureReplyTo(message);
base.Send(message, timeout);
}
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
return this.InnerChannel.BeginReceive(timeout, callback, state);
}
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return this.InnerChannel.BeginReceive(callback, state);
}
public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
return this.InnerChannel.BeginTryReceive(timeout, callback, state);
}
public IAsyncResult BeginWaitForMessage(TimeSpan timeout, AsyncCallback callback, object state)
{
return this.InnerChannel.BeginWaitForMessage(timeout, callback, state);
}
public Message EndReceive(IAsyncResult result)
{
return this.InnerChannel.EndReceive(result);
}
public bool EndTryReceive(IAsyncResult result, out Message message)
{
return this.InnerChannel.EndTryReceive(result, out message);
}
public bool EndWaitForMessage(IAsyncResult result)
{
return this.InnerChannel.EndWaitForMessage(result);
}
public Message Receive(TimeSpan timeout)
{
return this.InnerChannel.Receive(timeout);
}
public Message Receive()
{
return this.InnerChannel.Receive();
}
public bool TryReceive(TimeSpan timeout, out Message message)
{
return this.InnerChannel.TryReceive(timeout, out message);
}
public bool WaitForMessage(TimeSpan timeout)
{
return this.InnerChannel.WaitForMessage(timeout);
}
void EnsureReplyTo(Message message)
{
if (message != null && message.Headers != null)
{
if (message.Headers.ReplyTo == DiscoveryClientBindingElement.DiscoveryEndpointAddress)
{
message.Headers.ReplyTo = this.LocalAddress;
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TablePatternIdentifiers.cs
- SqlDataSourceQueryConverter.cs
- ServiceContractAttribute.cs
- SqlConnectionHelper.cs
- ChildDocumentBlock.cs
- CodeVariableReferenceExpression.cs
- AppDomainUnloadedException.cs
- WebEventCodes.cs
- QueueProcessor.cs
- _NegotiateClient.cs
- MetadataElement.cs
- ProgressBarBrushConverter.cs
- LingerOption.cs
- UserControlCodeDomTreeGenerator.cs
- DoubleLinkListEnumerator.cs
- ObjectDataSourceStatusEventArgs.cs
- ConfigUtil.cs
- ReachObjectContext.cs
- EditorPartDesigner.cs
- EntityKey.cs
- HeaderedContentControl.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- AttributeEmitter.cs
- CacheDependency.cs
- FormatterServices.cs
- DomainConstraint.cs
- DataContractSerializerOperationGenerator.cs
- ViewCellSlot.cs
- DefaultValueTypeConverter.cs
- InkCanvasSelectionAdorner.cs
- TextBoxDesigner.cs
- ReferencedType.cs
- StandardMenuStripVerb.cs
- StaticContext.cs
- DataTableExtensions.cs
- UnknownWrapper.cs
- RootCodeDomSerializer.cs
- XmlUrlResolver.cs
- PlainXmlWriter.cs
- ExpressionLexer.cs
- StyleCollectionEditor.cs
- SecurityCriticalDataForSet.cs
- FunctionDescription.cs
- FileDialogCustomPlaces.cs
- DbParameterCollectionHelper.cs
- AttachmentCollection.cs
- LinqDataSource.cs
- DataGridViewCellEventArgs.cs
- BinaryCommonClasses.cs
- UpdatePanel.cs
- ListBox.cs
- TypeSystemProvider.cs
- GC.cs
- DataGridTextBox.cs
- WebPartTransformerAttribute.cs
- ResourceExpressionBuilder.cs
- BevelBitmapEffect.cs
- MultiAsyncResult.cs
- SpeakInfo.cs
- CompiledQuery.cs
- CompensationHandlingFilter.cs
- ToolStripSettings.cs
- ProviderConnectionPointCollection.cs
- TemplateColumn.cs
- UpdateCompiler.cs
- UnSafeCharBuffer.cs
- DebugHandleTracker.cs
- Util.cs
- AtomServiceDocumentSerializer.cs
- WebControlsSection.cs
- BrowserInteropHelper.cs
- IdentityValidationException.cs
- Sentence.cs
- SelectionPatternIdentifiers.cs
- OletxResourceManager.cs
- Intellisense.cs
- CryptoStream.cs
- IisTraceWebEventProvider.cs
- LOSFormatter.cs
- PropertyGeneratedEventArgs.cs
- CodeVariableReferenceExpression.cs
- _AutoWebProxyScriptEngine.cs
- RowUpdatingEventArgs.cs
- StoragePropertyMapping.cs
- DefaultIfEmptyQueryOperator.cs
- CellCreator.cs
- FilterException.cs
- WebPartTracker.cs
- SizeAnimationBase.cs
- XhtmlBasicLiteralTextAdapter.cs
- DataControlLinkButton.cs
- ComboBox.cs
- HostExecutionContextManager.cs
- AttributeProviderAttribute.cs
- PanelStyle.cs
- CryptoConfig.cs
- ImplicitInputBrush.cs
- QilUnary.cs
- FixedSOMFixedBlock.cs
- SqlFormatter.cs