Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / BindingCollectionElement.cs / 1 / BindingCollectionElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System.Collections.ObjectModel; using System.ServiceModel.Channels; using System.Configuration; using System.ServiceModel; using System.Security; public abstract partial class BindingCollectionElement : ConfigurationElement, IConfigurationContextProviderInternal { string bindingName = string.Empty; protected internal abstract Binding GetDefault(); public string BindingName { get { if (String.IsNullOrEmpty(this.bindingName)) { this.bindingName = this.GetBindingName(); } return this.bindingName; } } public abstract Type BindingType { get; } public abstract ReadOnlyCollectionConfiguredBindings { get; } public abstract bool ContainsKey(string name); /// /// Critical - uses SecurityCritical method UnsafeLookupCollection which elevates /// Safe - does not leak config objects /// [SecurityCritical, SecurityTreatAsSafe] string GetBindingName() { string configuredSectionName = String.Empty; ExtensionElementCollection collection = null; Type extensionSectionType = this.GetType(); collection = ExtensionsSection.UnsafeLookupCollection(ConfigurationStrings.BindingExtensions, ConfigurationHelpers.GetEvaluationContext(this)); if (null == collection) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigExtensionCollectionNotFound, ConfigurationStrings.BindingExtensions), this.ElementInformation.Source, this.ElementInformation.LineNumber)); } for (int i = 0; i < collection.Count; i++) { ExtensionElement collectionElement = collection[i]; // Optimize for assembly qualified names. if (collectionElement.Type.Equals(extensionSectionType.AssemblyQualifiedName, StringComparison.Ordinal)) { configuredSectionName = collectionElement.Name; break; } // Check type directly for the case that the extension is registered with something less than // an full assembly qualified name. Type collectionElementType = Type.GetType(collectionElement.Type, false); if (null != collectionElementType && extensionSectionType.Equals(collectionElementType)) { configuredSectionName = collectionElement.Name; break; } } if (String.IsNullOrEmpty(configuredSectionName)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigExtensionTypeNotRegisteredInCollection, extensionSectionType.AssemblyQualifiedName, ConfigurationStrings.BindingExtensions), this.ElementInformation.Source, this.ElementInformation.LineNumber)); } return configuredSectionName; } protected internal abstract bool TryAdd(string name, Binding binding, Configuration config); ContextInformation IConfigurationContextProviderInternal.GetEvaluationContext() { return this.EvaluationContext; } ////// RequiresReview - the return value will be used for a security decision -- see comment in interface definition /// ContextInformation IConfigurationContextProviderInternal.GetOriginalEvaluationContext() { DiagnosticUtility.DebugAssert("Not implemented: IConfigurationContextProviderInternal.GetOriginalEvaluationContext"); return null; } } } // 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
- DataControlReferenceCollection.cs
- Registry.cs
- FontFamily.cs
- ScriptManager.cs
- XhtmlBasicSelectionListAdapter.cs
- XpsFontSerializationService.cs
- UserControlBuildProvider.cs
- FullTextBreakpoint.cs
- LOSFormatter.cs
- CustomActivityDesigner.cs
- EventData.cs
- AsnEncodedData.cs
- InternalCache.cs
- XmlSchemaComplexContent.cs
- HostedBindingBehavior.cs
- IriParsingElement.cs
- RC2CryptoServiceProvider.cs
- DataGridViewCellPaintingEventArgs.cs
- XsdDateTime.cs
- EnumerationRangeValidationUtil.cs
- complextypematerializer.cs
- OracleLob.cs
- TextBreakpoint.cs
- ValidatedControlConverter.cs
- SqlGatherProducedAliases.cs
- InstanceLockLostException.cs
- Array.cs
- Dump.cs
- PageAsyncTaskManager.cs
- ApplicationServicesHostFactory.cs
- SizeLimitedCache.cs
- StorageEntitySetMapping.cs
- HealthMonitoringSectionHelper.cs
- UInt64Storage.cs
- DetailsViewInsertEventArgs.cs
- FixedPageAutomationPeer.cs
- WindowsListViewItem.cs
- BitmapEffect.cs
- MimePart.cs
- WebPartConnectionCollection.cs
- CfgRule.cs
- DataGridViewComboBoxEditingControl.cs
- StatusBarAutomationPeer.cs
- ManualResetEvent.cs
- Floater.cs
- BaseTypeViewSchema.cs
- ExtensionElementCollection.cs
- ConstNode.cs
- DashStyle.cs
- MergeFilterQuery.cs
- PageRequestManager.cs
- RepeatButtonAutomationPeer.cs
- TrackingMemoryStream.cs
- RelationshipEnd.cs
- EmissiveMaterial.cs
- TextTrailingCharacterEllipsis.cs
- NamedPipeTransportSecurityElement.cs
- CodeTypeDelegate.cs
- Visual3DCollection.cs
- Metafile.cs
- SafePointer.cs
- MatrixTransform.cs
- ReaderWriterLock.cs
- ListBoxItemAutomationPeer.cs
- ArgumentsParser.cs
- _ProxyChain.cs
- EmptyTextWriter.cs
- figurelength.cs
- SymmetricAlgorithm.cs
- AlignmentXValidation.cs
- ToolStripContentPanel.cs
- EntityPropertyMappingAttribute.cs
- UpdateCompiler.cs
- TimeEnumHelper.cs
- SettingsSection.cs
- ServiceContractViewControl.cs
- LogPolicy.cs
- DiscriminatorMap.cs
- TypeListConverter.cs
- DeploymentSectionCache.cs
- WSFederationHttpBindingElement.cs
- MouseGesture.cs
- ModelItemExtensions.cs
- BitStack.cs
- DataGridViewCellStyleConverter.cs
- SqlWebEventProvider.cs
- TeredoHelper.cs
- ProgressiveCrcCalculatingStream.cs
- SqlUtils.cs
- ContractUtils.cs
- hebrewshape.cs
- SuppressIldasmAttribute.cs
- ConcurrentBag.cs
- JsonCollectionDataContract.cs
- BStrWrapper.cs
- Html32TextWriter.cs
- ContainerParagraph.cs
- documentsequencetextcontainer.cs
- Point4DConverter.cs
- ToolStripOverflow.cs