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
- AudioLevelUpdatedEventArgs.cs
- ExceptionHelpers.cs
- XmlSchemaException.cs
- UnmanagedMemoryStreamWrapper.cs
- FontUnitConverter.cs
- TransformerTypeCollection.cs
- TemplatePartAttribute.cs
- AxWrapperGen.cs
- WebPartRestoreVerb.cs
- securitycriticaldataformultiplegetandset.cs
- TreeNodeMouseHoverEvent.cs
- FindProgressChangedEventArgs.cs
- GregorianCalendarHelper.cs
- RsaSecurityTokenAuthenticator.cs
- ConfigurationStrings.cs
- OdbcInfoMessageEvent.cs
- SplitContainerDesigner.cs
- BaseParser.cs
- AppSecurityManager.cs
- CheckBoxFlatAdapter.cs
- _FtpControlStream.cs
- IMembershipProvider.cs
- FocusManager.cs
- MethodBuilderInstantiation.cs
- SessionIDManager.cs
- StreamMarshaler.cs
- WindowsTreeView.cs
- SecureUICommand.cs
- GeneralTransformGroup.cs
- XmlSchemaSimpleType.cs
- wgx_sdk_version.cs
- unsafenativemethodstextservices.cs
- DesignUtil.cs
- ParentQuery.cs
- TextBoxAutoCompleteSourceConverter.cs
- ConfigurationCollectionAttribute.cs
- WebPartConnectionsCancelEventArgs.cs
- TextHidden.cs
- TextDecoration.cs
- WebPartConnectionsDisconnectVerb.cs
- InvokeGenerator.cs
- RtfFormatStack.cs
- WsatServiceCertificate.cs
- ToolStripStatusLabel.cs
- HtmlElement.cs
- DesignerTransactionCloseEvent.cs
- XmlToDatasetMap.cs
- UInt32Storage.cs
- XmlNodeChangedEventArgs.cs
- TrustManagerPromptUI.cs
- ShapeTypeface.cs
- InkCanvasFeedbackAdorner.cs
- TabOrder.cs
- DirectionalLight.cs
- Match.cs
- VarRefManager.cs
- SqlDataSourceFilteringEventArgs.cs
- PagesSection.cs
- OptimizerPatterns.cs
- TextParentUndoUnit.cs
- LocatorGroup.cs
- ConfigsHelper.cs
- DynamicMethod.cs
- DataPagerCommandEventArgs.cs
- CompositeScriptReference.cs
- KnowledgeBase.cs
- GroupBoxRenderer.cs
- EntityCommand.cs
- SHA256Managed.cs
- DoubleCollectionConverter.cs
- AssemblyInfo.cs
- KeyConstraint.cs
- NGCSerializationManagerAsync.cs
- DataGridViewLinkCell.cs
- RadialGradientBrush.cs
- AtomContentProperty.cs
- Emitter.cs
- TableItemStyle.cs
- _LoggingObject.cs
- MSAANativeProvider.cs
- ObjRef.cs
- XmlAttribute.cs
- XmlSchemaSet.cs
- WindowPatternIdentifiers.cs
- ResourceReader.cs
- ImageAnimator.cs
- SafeHandles.cs
- PreviousTrackingServiceAttribute.cs
- AccessText.cs
- DataGridViewCellConverter.cs
- SkipQueryOptionExpression.cs
- DesignerContextDescriptor.cs
- ResXResourceWriter.cs
- SafeProcessHandle.cs
- ClientRoleProvider.cs
- ProjectionPathBuilder.cs
- XmlUrlResolver.cs
- DataRowCollection.cs
- RuntimeTrackingProfile.cs
- SystemColors.cs