Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / CustomBindingCollectionElement.cs / 1 / CustomBindingCollectionElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System.Collections.Generic; using System.Collections.ObjectModel; using System.Configuration; using System.Globalization; using System.ServiceModel; using System.ServiceModel.Channels; public sealed partial class CustomBindingCollectionElement : BindingCollectionElement { [ConfigurationProperty(ConfigurationStrings.DefaultCollectionName, Options = ConfigurationPropertyOptions.IsDefaultCollection)] public CustomBindingElementCollection Bindings { get {return (CustomBindingElementCollection) base[ConfigurationStrings.DefaultCollectionName]; } } public override Type BindingType { get {return typeof(CustomBinding); } } public override ReadOnlyCollectionConfiguredBindings { get { List configuredBindings = new List (); foreach (IBindingConfigurationElement configuredBinding in this.Bindings) { configuredBindings.Add(configuredBinding); } return new ReadOnlyCollection (configuredBindings); } } public override bool ContainsKey(string name) { // This line needed because of the IBindingSection implementation return this.Bindings.ContainsKey(name); } protected internal override Binding GetDefault() { return System.Activator.CreateInstance (); } internal static CustomBindingCollectionElement GetBindingCollectionElement() { return (CustomBindingCollectionElement)ConfigurationHelpers.GetBindingCollectionElement(ConfigurationStrings.CustomBindingCollectionElementName); } bool TryCreateMatchingExtension(BindingElement bindingElement, ExtensionElementCollection collection, bool allowDerivedTypes, string assemblyName, out BindingElementExtensionElement result) { result = null; foreach (ExtensionElement element in collection) { BindingElementExtensionElement bindingElementExtension = Activator.CreateInstance(Type.GetType(element.Type, true)) as BindingElementExtensionElement; if (null == bindingElementExtension) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidExtensionType, element.Type, assemblyName, ConfigurationStrings.BindingElementExtensions))); } bool isMatch; if (allowDerivedTypes) { isMatch = bindingElementExtension.BindingElementType.IsAssignableFrom(bindingElement.GetType()); } else { isMatch = bindingElementExtension.BindingElementType.Equals(bindingElement.GetType()); } if (isMatch) { result = bindingElementExtension; return true; } } return false; } protected internal override bool TryAdd(string name, Binding binding, Configuration config) { if (String.IsNullOrEmpty(name)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name"); } if (null == binding) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("binding"); } if (null == config) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("config"); } ServiceModelSectionGroup sg = ServiceModelSectionGroup.GetSectionGroup(config); CustomBindingElementCollection customBindings = sg.Bindings.CustomBinding.Bindings; CustomBindingElement configElement = new CustomBindingElement(name); customBindings.Add(configElement); ExtensionElementCollection collection = sg.Extensions.BindingElementExtensions; CustomBinding customBinding = (CustomBinding) binding; foreach (BindingElement bindingElement in customBinding.Elements) { BindingElementExtensionElement bindingElementExtension; bool foundMatch = TryCreateMatchingExtension(bindingElement, collection, false, configElement.CollectionElementBaseType.AssemblyQualifiedName, out bindingElementExtension); if (!foundMatch) { foundMatch = TryCreateMatchingExtension(bindingElement, collection, true, configElement.CollectionElementBaseType.AssemblyQualifiedName, out bindingElementExtension); } if (!foundMatch) { break; } bindingElementExtension.InitializeFrom(bindingElement); configElement.Add(bindingElementExtension); } bool retval = configElement.Count == customBinding.Elements.Count; if (!retval) { customBindings.Remove(configElement); } return retval; } } } // 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
- OdbcInfoMessageEvent.cs
- ParallelTimeline.cs
- DataSourceView.cs
- StandardOleMarshalObject.cs
- SqlEnums.cs
- ToolStripTextBox.cs
- PropertyChangedEventManager.cs
- InvalidTimeZoneException.cs
- MouseWheelEventArgs.cs
- StandardBindingReliableSessionElement.cs
- Variable.cs
- KeyGesture.cs
- FixedDSBuilder.cs
- SafeSecurityHelper.cs
- StreamWriter.cs
- ServiceDurableInstanceContextProvider.cs
- AssertFilter.cs
- HGlobalSafeHandle.cs
- Main.cs
- FieldToken.cs
- BindingOperations.cs
- IntSecurity.cs
- DummyDataSource.cs
- DSACryptoServiceProvider.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- Privilege.cs
- QueryCacheManager.cs
- RoleManagerSection.cs
- TreeBuilderBamlTranslator.cs
- PropertyValueChangedEvent.cs
- CalendarButtonAutomationPeer.cs
- SequenceRangeCollection.cs
- ArrayMergeHelper.cs
- CodeAccessPermission.cs
- SplitterEvent.cs
- HtmlControlDesigner.cs
- Image.cs
- PathParser.cs
- FormParameter.cs
- ProjectionCamera.cs
- MenuScrollingVisibilityConverter.cs
- DateTimeConverter.cs
- SchemaSetCompiler.cs
- XsltContext.cs
- HostedHttpTransportManager.cs
- FilePrompt.cs
- CounterCreationDataConverter.cs
- TemplateManager.cs
- ConnectionStringSettings.cs
- XmlToDatasetMap.cs
- StorageEndPropertyMapping.cs
- StructuralCache.cs
- SqlDataSourceView.cs
- KeyedQueue.cs
- TextDecorationCollectionConverter.cs
- EditorBrowsableAttribute.cs
- GeneralTransform3DGroup.cs
- TableRow.cs
- ComponentCommands.cs
- SortedList.cs
- Soap.cs
- ThicknessAnimation.cs
- ExpressionLink.cs
- EUCJPEncoding.cs
- LOSFormatter.cs
- ServiceNameElement.cs
- Odbc32.cs
- Button.cs
- TypefaceMetricsCache.cs
- ValueQuery.cs
- _SslStream.cs
- MLangCodePageEncoding.cs
- EntityDataSourceDataSelection.cs
- StreamResourceInfo.cs
- WindowsGrip.cs
- SaveFileDialogDesigner.cs
- SeekableMessageNavigator.cs
- ConstructorBuilder.cs
- wgx_commands.cs
- RtfToXamlLexer.cs
- FtpCachePolicyElement.cs
- FileFormatException.cs
- XPathException.cs
- GenerateTemporaryTargetAssembly.cs
- _NegotiateClient.cs
- PeerCollaboration.cs
- ContextMarshalException.cs
- ContentElementCollection.cs
- SafeRightsManagementSessionHandle.cs
- ProcessModuleCollection.cs
- ConnectionPoint.cs
- BatchParser.cs
- KeyConverter.cs
- ZeroOpNode.cs
- AspProxy.cs
- _CacheStreams.cs
- OleDbMetaDataFactory.cs
- DbProviderFactory.cs
- XmlWrappingWriter.cs
- AssemblyCollection.cs