Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / Configuration / ServiceDiscoveryElement.cs / 1305376 / ServiceDiscoveryElement.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery.Configuration { using System.Configuration; using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.ServiceModel.Configuration; using System.ServiceModel.Description; using SR2 = System.ServiceModel.Discovery.SR; public sealed class ServiceDiscoveryElement : BehaviorExtensionElement { ConfigurationPropertyCollection properties; public ServiceDiscoveryElement() { } [ConfigurationProperty(ConfigurationStrings.AnnouncementEndpoints)] public AnnouncementChannelEndpointElementCollection AnnouncementEndpoints { get { return (AnnouncementChannelEndpointElementCollection)base[ConfigurationStrings.AnnouncementEndpoints]; } } [SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationPropertyAttributeRule, Justification = "This property is defined by the base class to determine the type of the behavior.")] public override Type BehaviorType { get { return typeof(ServiceDiscoveryBehavior); } } protected override ConfigurationPropertyCollection Properties { get { if (this.properties == null) { ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); properties.Add( new ConfigurationProperty( ConfigurationStrings.AnnouncementEndpoints, typeof(AnnouncementChannelEndpointElementCollection), null, null, null, ConfigurationPropertyOptions.None)); this.properties = properties; } return this.properties; } } protected internal override object CreateBehavior() { ServiceDiscoveryBehavior serviceDiscoveryBehavior = new ServiceDiscoveryBehavior(); AnnouncementEndpoint announcementEndpoint; foreach (ChannelEndpointElement channelEndpointElement in this.AnnouncementEndpoints) { if (string.IsNullOrEmpty(channelEndpointElement.Kind)) { throw FxTrace.Exception.AsError( new ConfigurationErrorsException( SR2.DiscoveryConfigAnnouncementEndpointMissingKind( typeof(AnnouncementEndpoint).FullName))); } ServiceEndpoint serviceEndpoint = ConfigLoader.LookupEndpoint(channelEndpointElement, null); if (serviceEndpoint == null) { throw FxTrace.Exception.AsError( new ConfigurationErrorsException( SR2.DiscoveryConfigInvalidEndpointConfiguration( channelEndpointElement.Kind))); } announcementEndpoint = serviceEndpoint as AnnouncementEndpoint; if (announcementEndpoint == null) { throw FxTrace.Exception.AsError( new InvalidOperationException( SR2.DiscoveryConfigInvalidAnnouncementEndpoint( channelEndpointElement.Kind, serviceEndpoint.GetType().FullName, typeof(AnnouncementEndpoint).FullName))); } serviceDiscoveryBehavior.AnnouncementEndpoints.Add(announcementEndpoint); } return serviceDiscoveryBehavior; } } } // 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
- WebProxyScriptElement.cs
- TextInfo.cs
- DecimalAnimation.cs
- processwaithandle.cs
- KeyedCollection.cs
- StylusDevice.cs
- RectangleHotSpot.cs
- ZipIOExtraFieldElement.cs
- SelectedDatesCollection.cs
- StorageEntitySetMapping.cs
- PersistChildrenAttribute.cs
- TimelineGroup.cs
- ObjectManager.cs
- DesignerValidatorAdapter.cs
- DragEventArgs.cs
- RedirectionProxy.cs
- BufferedStream.cs
- TreeNodeEventArgs.cs
- DBConcurrencyException.cs
- ViewCellRelation.cs
- Axis.cs
- Parallel.cs
- TypeDescriptionProviderAttribute.cs
- SerializationFieldInfo.cs
- XPathBinder.cs
- TableProviderWrapper.cs
- InternalConfigRoot.cs
- StreamGeometry.cs
- OdbcConnectionHandle.cs
- DataSysAttribute.cs
- RefExpr.cs
- PolyBezierSegmentFigureLogic.cs
- RotateTransform.cs
- PolyQuadraticBezierSegment.cs
- AliasedExpr.cs
- LinqToSqlWrapper.cs
- AssemblySettingAttributes.cs
- SafeFileMapViewHandle.cs
- RootBrowserWindowAutomationPeer.cs
- TemplateKeyConverter.cs
- TextLine.cs
- FunctionQuery.cs
- TextServicesLoader.cs
- KoreanCalendar.cs
- MenuItemCollection.cs
- ButtonBase.cs
- XmlAttributeOverrides.cs
- CacheOutputQuery.cs
- FontStretch.cs
- TypeConverterHelper.cs
- Label.cs
- DotExpr.cs
- mediapermission.cs
- SqlMethodAttribute.cs
- ServiceOperationParameter.cs
- HtmlControl.cs
- FontClient.cs
- ColorTransform.cs
- CharEntityEncoderFallback.cs
- ClientRoleProvider.cs
- ContextStack.cs
- SymbolTable.cs
- LinqDataSourceUpdateEventArgs.cs
- DataBoundControlActionList.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- SoapDocumentMethodAttribute.cs
- SelectorItemAutomationPeer.cs
- Encoder.cs
- FormViewRow.cs
- BaseTemplateCodeDomTreeGenerator.cs
- XpsFilter.cs
- QueryStatement.cs
- DurableMessageDispatchInspector.cs
- WinFormsSecurity.cs
- EditingCoordinator.cs
- RuleSet.cs
- ServerProtocol.cs
- ThousandthOfEmRealPoints.cs
- PartialCachingAttribute.cs
- SspiSecurityTokenProvider.cs
- ImmutablePropertyDescriptorGridEntry.cs
- PrintPreviewControl.cs
- ScriptReferenceEventArgs.cs
- ProfessionalColorTable.cs
- Encoding.cs
- RoutingBehavior.cs
- EntityDataSourceDataSelection.cs
- InvalidAsynchronousStateException.cs
- MaterialCollection.cs
- AutomationPeer.cs
- GridViewColumnHeader.cs
- SliderAutomationPeer.cs
- HelpProvider.cs
- CharAnimationBase.cs
- XmlDomTextWriter.cs
- DataStreams.cs
- SmtpNtlmAuthenticationModule.cs
- EntityClassGenerator.cs
- Terminate.cs
- mediapermission.cs