Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / Version11 / DiscoveryInnerClientManaged11.cs / 1305376 / DiscoveryInnerClientManaged11.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.ServiceModel.Discovery.Version11
{
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Runtime;
using System.ServiceModel.Description;
class DiscoveryInnerClientManaged11 : ClientBase, IDiscoveryInnerClient
{
IDiscoveryInnerClientResponse responseReceiver;
internal DiscoveryInnerClientManaged11(DiscoveryEndpoint discoveryEndpoint, IDiscoveryInnerClientResponse responseReceiver)
: base(discoveryEndpoint)
{
Fx.Assert(responseReceiver != null, "The responseReceiver parameter cannot be null");
this.responseReceiver = responseReceiver;
}
public new ClientCredentials ClientCredentials
{
get
{
return base.ClientCredentials;
}
}
public new ChannelFactory ChannelFactory
{
get
{
return base.ChannelFactory;
}
}
public new IClientChannel InnerChannel
{
get
{
return base.InnerChannel;
}
}
public new ServiceEndpoint Endpoint
{
get
{
return base.Endpoint;
}
}
public ICommunicationObject InnerCommunicationObject
{
get
{
return this as ICommunicationObject;
}
}
public bool IsRequestResponse
{
get
{
return true;
}
}
public IAsyncResult BeginProbeOperation(FindCriteria findCriteria, AsyncCallback callback, object state)
{
ProbeMessage11 request = new ProbeMessage11();
request.Probe = FindCriteria11.FromFindCriteria(findCriteria);
return base.Channel.BeginProbeOperation(request, callback, state);
}
public IAsyncResult BeginResolveOperation(ResolveCriteria resolveCriteria, AsyncCallback callback, object state)
{
ResolveMessage11 request = new ResolveMessage11();
request.Resolve = ResolveCriteria11.FromResolveCriteria(resolveCriteria);
return base.Channel.BeginResolveOperation(request, callback, state);
}
public void EndProbeOperation(IAsyncResult result)
{
ProbeMatchesMessage11 response = base.Channel.EndProbeOperation(result);
AsyncOperationContext context = (AsyncOperationContext)result.AsyncState;
if ((response != null) && (response.ProbeMatches != null))
{
this.responseReceiver.ProbeMatchOperation(
context.OperationId,
DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence),
DiscoveryUtility.ToEndpointDiscoveryMetadataCollection(response.ProbeMatches),
true);
}
else
{
this.responseReceiver.PostFindCompletedAndRemove(context.OperationId, false, null);
}
}
public void EndResolveOperation(IAsyncResult result)
{
ResolveMatchesMessage11 response = base.Channel.EndResolveOperation(result);
AsyncOperationContext context = (AsyncOperationContext)result.AsyncState;
if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null))
{
this.responseReceiver.ResolveMatchOperation(
context.OperationId,
DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence),
response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata());
}
else
{
this.responseReceiver.PostResolveCompletedAndRemove(context.OperationId, false, null);
}
}
public void ProbeOperation(FindCriteria findCriteria)
{
ProbeMessage11 request = new ProbeMessage11();
request.Probe = FindCriteria11.FromFindCriteria(findCriteria);
ProbeMatchesMessage11 response = base.Channel.ProbeOperation(request);
if ((response != null) && (response.ProbeMatches != null))
{
this.responseReceiver.ProbeMatchOperation(
OperationContext.Current.IncomingMessageHeaders.RelatesTo,
DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence),
DiscoveryUtility.ToEndpointDiscoveryMetadataCollection(response.ProbeMatches),
true);
}
else
{
this.responseReceiver.PostFindCompletedAndRemove(OperationContext.Current.IncomingMessageHeaders.RelatesTo, false, null);
}
}
public void ResolveOperation(ResolveCriteria resolveCriteria)
{
ResolveMessage11 request = new ResolveMessage11();
request.Resolve = ResolveCriteria11.FromResolveCriteria(resolveCriteria);
ResolveMatchesMessage11 response = base.Channel.ResolveOperation(request);
if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null))
{
this.responseReceiver.ResolveMatchOperation(
OperationContext.Current.IncomingMessageHeaders.RelatesTo,
DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence),
response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata());
}
else
{
this.responseReceiver.PostResolveCompletedAndRemove(OperationContext.Current.IncomingMessageHeaders.RelatesTo, false, null);
}
}
}
}
// 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
- CellParaClient.cs
- FileIOPermission.cs
- MediaSystem.cs
- NonVisualControlAttribute.cs
- SBCSCodePageEncoding.cs
- Util.cs
- FlowDocumentScrollViewer.cs
- WebMessageEncodingElement.cs
- InfiniteIntConverter.cs
- GridViewDeletedEventArgs.cs
- ExpressionBuilder.cs
- HandlerFactoryWrapper.cs
- JsonQueryStringConverter.cs
- _RequestCacheProtocol.cs
- XmlDigitalSignatureProcessor.cs
- CorrelationManager.cs
- RoleManagerEventArgs.cs
- CancellationHandlerDesigner.cs
- AppDomainManager.cs
- TextServicesHost.cs
- StdValidatorsAndConverters.cs
- CompatibleComparer.cs
- XmlElementAttributes.cs
- InstanceDataCollectionCollection.cs
- UniqueEventHelper.cs
- PriorityBindingExpression.cs
- BindToObject.cs
- SafeProcessHandle.cs
- HtmlContainerControl.cs
- _TLSstream.cs
- TaiwanCalendar.cs
- DocumentGrid.cs
- ListBindingConverter.cs
- PreviewPageInfo.cs
- PlainXmlWriter.cs
- InternalBufferManager.cs
- ViewgenGatekeeper.cs
- SqlRowUpdatedEvent.cs
- Task.cs
- _ConnectOverlappedAsyncResult.cs
- XPathSelfQuery.cs
- FilterException.cs
- TextEditorCopyPaste.cs
- OracleCommand.cs
- documentsequencetextpointer.cs
- HostedImpersonationContext.cs
- DataViewSettingCollection.cs
- RetrieveVirtualItemEventArgs.cs
- AlternateViewCollection.cs
- CodeSubDirectory.cs
- LeafCellTreeNode.cs
- ObjectQueryExecutionPlan.cs
- RegistryKey.cs
- AutomationPropertyInfo.cs
- QueryExtender.cs
- WebSysDisplayNameAttribute.cs
- ReadOnlyPermissionSet.cs
- ISO2022Encoding.cs
- RelatedCurrencyManager.cs
- NextPreviousPagerField.cs
- DataControlField.cs
- Matrix3DConverter.cs
- SerializationTrace.cs
- SizeKeyFrameCollection.cs
- WebBrowserNavigatingEventHandler.cs
- ThicknessAnimationBase.cs
- SqlAliaser.cs
- ToolStripGrip.cs
- RouteItem.cs
- DataGridBoolColumn.cs
- Paragraph.cs
- X509Certificate.cs
- BeginEvent.cs
- CompositeActivityValidator.cs
- FrugalList.cs
- RtType.cs
- StackSpiller.Temps.cs
- AvTraceFormat.cs
- RequestCachePolicy.cs
- XmlElementAttribute.cs
- ErrorTableItemStyle.cs
- FormViewInsertedEventArgs.cs
- DataRelationCollection.cs
- Camera.cs
- SqlDataSourceConfigureSortForm.cs
- ViewStateModeByIdAttribute.cs
- CheckBoxPopupAdapter.cs
- ErrorRuntimeConfig.cs
- PageCodeDomTreeGenerator.cs
- WaitHandleCannotBeOpenedException.cs
- _NativeSSPI.cs
- ChtmlTextWriter.cs
- CompiledRegexRunner.cs
- ResourceDisplayNameAttribute.cs
- MetadataCache.cs
- HtmlMeta.cs
- SafeNativeMethods.cs
- ServiceCredentialsElement.cs
- Point.cs
- MessagingDescriptionAttribute.cs