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
- TransformerTypeCollection.cs
- TextTreeNode.cs
- SiteMap.cs
- EntityCommandCompilationException.cs
- RelatedImageListAttribute.cs
- SessionPageStateSection.cs
- ResourceProviderFactory.cs
- NavigationEventArgs.cs
- ReadWriteSpinLock.cs
- SqlNodeAnnotation.cs
- StyleSheetRefUrlEditor.cs
- AlternationConverter.cs
- SoapAttributes.cs
- CapabilitiesState.cs
- XPathParser.cs
- XamlVector3DCollectionSerializer.cs
- SqlNamer.cs
- DecimalAnimationUsingKeyFrames.cs
- ToolBarOverflowPanel.cs
- XmlCharCheckingReader.cs
- formatstringdialog.cs
- SchemaTableColumn.cs
- DataRowChangeEvent.cs
- SoapFault.cs
- GridViewCommandEventArgs.cs
- RadioButtonDesigner.cs
- ComplexType.cs
- ComplexPropertyEntry.cs
- Trustee.cs
- OleDbStruct.cs
- SchemaImporter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ServiceDesigner.cs
- XmlComplianceUtil.cs
- MainMenu.cs
- TabletCollection.cs
- RegexRunner.cs
- CodeAttachEventStatement.cs
- IPAddressCollection.cs
- MouseGesture.cs
- OdbcReferenceCollection.cs
- FieldToken.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- X509SecurityTokenAuthenticator.cs
- Rfc2898DeriveBytes.cs
- Interlocked.cs
- Evidence.cs
- DocumentViewerConstants.cs
- ConnectivityStatus.cs
- Debug.cs
- ExpressionVisitor.cs
- GZipUtils.cs
- StreamUpdate.cs
- PropertyValueChangedEvent.cs
- RTLAwareMessageBox.cs
- SByte.cs
- TextBoxBase.cs
- CqlErrorHelper.cs
- SamlSerializer.cs
- OptimalBreakSession.cs
- BufferModeSettings.cs
- RowUpdatedEventArgs.cs
- SystemResourceHost.cs
- ProfilePropertySettings.cs
- ItemCollection.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- JavaScriptString.cs
- RadioButtonFlatAdapter.cs
- PreservationFileWriter.cs
- CalendarDateRangeChangingEventArgs.cs
- ExecutedRoutedEventArgs.cs
- GridViewRow.cs
- RuntimeEnvironment.cs
- OperationContractGenerationContext.cs
- NestedContainer.cs
- CodeCatchClause.cs
- Matrix3DConverter.cs
- ProgressChangedEventArgs.cs
- SafeHandle.cs
- XamlPointCollectionSerializer.cs
- BStrWrapper.cs
- SqlReferenceCollection.cs
- EntityDescriptor.cs
- ContentHostHelper.cs
- CodeGotoStatement.cs
- ConstraintConverter.cs
- TemplatePropertyEntry.cs
- _HeaderInfo.cs
- PropertyEmitter.cs
- EnumerableRowCollection.cs
- DivideByZeroException.cs
- HasActivatableWorkflowEvent.cs
- GroupBox.cs
- Line.cs
- PointCollectionConverter.cs
- WebPartConnectionCollection.cs
- GlyphInfoList.cs
- ConnectionPointCookie.cs
- ToolStripDropDownButton.cs
- DesignerActionItemCollection.cs