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
- Collection.cs
- KeyboardNavigation.cs
- StateMachineHelpers.cs
- DBCommand.cs
- SerializationInfoEnumerator.cs
- BmpBitmapDecoder.cs
- CultureMapper.cs
- WebPartChrome.cs
- TrayIconDesigner.cs
- RIPEMD160Managed.cs
- FileDialog.cs
- DependencyPropertyAttribute.cs
- EventLog.cs
- MessageQueueKey.cs
- ServiceMetadataContractBehavior.cs
- ToolStripDropDownItem.cs
- EndOfStreamException.cs
- StringInfo.cs
- DaylightTime.cs
- Axis.cs
- HostProtectionException.cs
- ObjectRef.cs
- UmAlQuraCalendar.cs
- EntityRecordInfo.cs
- ConnectionPoolManager.cs
- Comparer.cs
- DocumentXmlWriter.cs
- ConnectionStringsExpressionBuilder.cs
- QueryOpeningEnumerator.cs
- SequenceNumber.cs
- SecurityHeaderElementInferenceEngine.cs
- Expr.cs
- WaitHandleCannotBeOpenedException.cs
- DataGridViewBindingCompleteEventArgs.cs
- SingleStorage.cs
- XamlStyleSerializer.cs
- _ContextAwareResult.cs
- SQLMembershipProvider.cs
- GZipStream.cs
- RadioButtonRenderer.cs
- SymbolMethod.cs
- CompilerState.cs
- ThrowHelper.cs
- OracleParameterCollection.cs
- LocatorManager.cs
- MdiWindowListStrip.cs
- baseaxisquery.cs
- Token.cs
- RequestSecurityTokenSerializer.cs
- WebRequestModulesSection.cs
- AlternateView.cs
- ValidatedControlConverter.cs
- CellPartitioner.cs
- FamilyMapCollection.cs
- RadioButtonPopupAdapter.cs
- TypeDependencyAttribute.cs
- tooltip.cs
- DocumentViewerBaseAutomationPeer.cs
- MbpInfo.cs
- MD5.cs
- FileAuthorizationModule.cs
- PrePostDescendentsWalker.cs
- CallTemplateAction.cs
- Formatter.cs
- UIPropertyMetadata.cs
- ApplicationBuildProvider.cs
- PermissionListSet.cs
- KeyValuePair.cs
- TypeConvertions.cs
- EventHandlersStore.cs
- HtmlElementCollection.cs
- DocumentReferenceCollection.cs
- ParameterExpression.cs
- ParseElement.cs
- EventRouteFactory.cs
- SettingsAttributeDictionary.cs
- SchemaCompiler.cs
- StylusLogic.cs
- NetworkStream.cs
- FixedSOMTable.cs
- NumberSubstitution.cs
- InstanceNameConverter.cs
- SchemaSetCompiler.cs
- HtmlTableRow.cs
- RelationshipType.cs
- ObjectDataSourceStatusEventArgs.cs
- GenericWebPart.cs
- ConfigurationStrings.cs
- ReferencedCategoriesDocument.cs
- Debug.cs
- ForeignConstraint.cs
- GenericWebPart.cs
- LinkedList.cs
- AppSettingsSection.cs
- ExecutionContext.cs
- DBDataPermission.cs
- ListBoxDesigner.cs
- ThicknessConverter.cs
- Policy.cs
- EmptyReadOnlyDictionaryInternal.cs