Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / DefaultDiscoveryService.cs / 1305376 / DefaultDiscoveryService.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System.Collections.ObjectModel; using System.Runtime; class DefaultDiscoveryService : DiscoveryService { readonly ReadOnlyCollectionpublishedEndpoints; public DefaultDiscoveryService( DiscoveryServiceExtension discoveryServiceExtension, DiscoveryMessageSequenceGenerator discoveryMessageSequenceGenerator, int duplicateMessageHistoryLength) : base(discoveryMessageSequenceGenerator, duplicateMessageHistoryLength) { Fx.Assert(discoveryServiceExtension != null, "The discoveryServiceExtension must be non null."); this.publishedEndpoints = discoveryServiceExtension.PublishedEndpoints; } protected override IAsyncResult OnBeginFind( FindRequestContext findRequestContext, AsyncCallback callback, object state) { this.Match(findRequestContext); return new CompletedAsyncResult(callback, state); } protected override void OnEndFind(IAsyncResult result) { CompletedAsyncResult.End(result); } protected override IAsyncResult OnBeginResolve(ResolveCriteria resolveCriteria, AsyncCallback callback, object state) { return new CompletedAsyncResult ( this.Match(resolveCriteria), callback, state); } protected override EndpointDiscoveryMetadata OnEndResolve(IAsyncResult result) { return CompletedAsyncResult .End(result); } EndpointDiscoveryMetadata Match(ResolveCriteria criteria) { for (int i = 0; i < this.publishedEndpoints.Count; i++) { if (this.publishedEndpoints[i].Address.Equals(criteria.Address)) { return this.publishedEndpoints[i]; } } return null; } void Match(FindRequestContext findRequestContext) { FindCriteria criteria = findRequestContext.Criteria; if (!ScopeCompiler.IsSupportedMatchingRule(criteria.ScopeMatchBy)) { return; } CompiledScopeCriteria[] compiledScopeCriterias = ScopeCompiler.CompileMatchCriteria( criteria.InternalScopes, criteria.ScopeMatchBy); int matchingEndpointCount = 0; for (int i = 0; i < this.publishedEndpoints.Count; i++) { if (criteria.IsMatch(this.publishedEndpoints[i], compiledScopeCriterias)) { findRequestContext.AddMatchingEndpoint(this.publishedEndpoints[i]); matchingEndpointCount++; if (matchingEndpointCount == criteria.MaxResults) { break; } } } } } } // 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
- StrongNameIdentityPermission.cs
- CopyAction.cs
- ColumnBinding.cs
- OutOfMemoryException.cs
- EntityClassGenerator.cs
- Latin1Encoding.cs
- assertwrapper.cs
- EventLog.cs
- ServicesUtilities.cs
- AnnotationDocumentPaginator.cs
- XmlConvert.cs
- activationcontext.cs
- DesignColumnCollection.cs
- Pool.cs
- BaseValidator.cs
- TypeSemantics.cs
- XhtmlTextWriter.cs
- ISFTagAndGuidCache.cs
- IgnoreFileBuildProvider.cs
- ManifestResourceInfo.cs
- VisualStyleTypesAndProperties.cs
- OutputCacheProfileCollection.cs
- StorageMappingItemCollection.cs
- QilUnary.cs
- CompoundFileStreamReference.cs
- Vector3DAnimationBase.cs
- Properties.cs
- ExpressionHelper.cs
- ResourceWriter.cs
- ClockController.cs
- X509ChainElement.cs
- TaiwanLunisolarCalendar.cs
- DesignerWebPartChrome.cs
- InvokeGenerator.cs
- MenuItemStyleCollection.cs
- BitmapEffect.cs
- IncrementalHitTester.cs
- TargetParameterCountException.cs
- SchemaElementLookUpTable.cs
- X509CertificateTokenFactoryCredential.cs
- PanelDesigner.cs
- _ListenerAsyncResult.cs
- TemplatedAdorner.cs
- DataPager.cs
- DataKey.cs
- DataControlFieldCell.cs
- MessageDescription.cs
- OwnerDrawPropertyBag.cs
- HtmlDocument.cs
- XmlSchemaResource.cs
- CanExecuteRoutedEventArgs.cs
- MtomMessageEncoder.cs
- RTLAwareMessageBox.cs
- SmiXetterAccessMap.cs
- Journaling.cs
- RuleInfoComparer.cs
- Listen.cs
- VScrollBar.cs
- Lazy.cs
- TraceUtility.cs
- log.cs
- ContainerActivationHelper.cs
- EventSetter.cs
- TraceData.cs
- ConfigXmlElement.cs
- SemanticValue.cs
- IdentityManager.cs
- QuaternionAnimation.cs
- MenuCommand.cs
- CrossSiteScriptingValidation.cs
- ArglessEventHandlerProxy.cs
- TraceHandler.cs
- SafeFileMappingHandle.cs
- ContentIterators.cs
- PersonalizationStateInfo.cs
- ServiceBuildProvider.cs
- LinkedList.cs
- StaticSiteMapProvider.cs
- ZipFileInfoCollection.cs
- CommandManager.cs
- CookieParameter.cs
- ToolboxControl.cs
- MgmtResManager.cs
- SingleAnimation.cs
- GroupBox.cs
- AppSettingsSection.cs
- NumberSubstitution.cs
- ExclusiveTcpTransportManager.cs
- GPPOINT.cs
- DataContractSerializerSection.cs
- SurrogateEncoder.cs
- RuntimeHandles.cs
- QueryPageSettingsEventArgs.cs
- InkSerializer.cs
- DataGridSortCommandEventArgs.cs
- DateTimeSerializationSection.cs
- TypefaceMetricsCache.cs
- IConvertible.cs
- Formatter.cs
- DbTransaction.cs