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
- SubMenuStyle.cs
- MSAANativeProvider.cs
- OleDbDataAdapter.cs
- SplineKeyFrames.cs
- SliderAutomationPeer.cs
- TlsnegoTokenProvider.cs
- ImageInfo.cs
- PersianCalendar.cs
- ContextProperty.cs
- XmlBinaryReader.cs
- Vertex.cs
- SqlBinder.cs
- MetricEntry.cs
- ListBase.cs
- Sentence.cs
- RadioButton.cs
- Grant.cs
- HttpVersion.cs
- DataGridCell.cs
- KnownTypeDataContractResolver.cs
- VariableExpressionConverter.cs
- StylusPointPropertyUnit.cs
- WebEvents.cs
- StorageMappingItemLoader.cs
- CatalogPartCollection.cs
- HierarchicalDataBoundControl.cs
- InvokeMethodActivityDesigner.cs
- PersistencePipeline.cs
- ClassHandlersStore.cs
- SerialErrors.cs
- XmlUtil.cs
- _DigestClient.cs
- HtmlTitle.cs
- DataControlPagerLinkButton.cs
- DefaultPropertyAttribute.cs
- RegexParser.cs
- RelativeSource.cs
- WizardPanel.cs
- RenderCapability.cs
- FontInfo.cs
- SemanticAnalyzer.cs
- OdbcRowUpdatingEvent.cs
- BitmapEffectDrawingContextWalker.cs
- TextBoxAutoCompleteSourceConverter.cs
- PointLight.cs
- SqlUserDefinedAggregateAttribute.cs
- QueryOutputWriter.cs
- CodeAccessSecurityEngine.cs
- UniqueConstraint.cs
- DrawingVisual.cs
- ColumnResult.cs
- XamlToRtfWriter.cs
- ScriptComponentDescriptor.cs
- SelectionListDesigner.cs
- InteropExecutor.cs
- ButtonField.cs
- Win32.cs
- HttpStreamMessage.cs
- OneOfElement.cs
- CursorConverter.cs
- HtmlHistory.cs
- Point3DCollectionValueSerializer.cs
- ViewService.cs
- CodeMethodReturnStatement.cs
- PriorityItem.cs
- FixedPageProcessor.cs
- DeviceContexts.cs
- RectAnimationUsingKeyFrames.cs
- XsltContext.cs
- HtmlElementCollection.cs
- RequestQueryParser.cs
- unsafenativemethodsother.cs
- CharacterHit.cs
- EntityViewGenerationAttribute.cs
- RecommendedAsConfigurableAttribute.cs
- autovalidator.cs
- SubMenuStyle.cs
- NavigationFailedEventArgs.cs
- DataGridViewMethods.cs
- Repeater.cs
- NetMsmqSecurityElement.cs
- GlyphTypeface.cs
- BrowserCapabilitiesFactory35.cs
- DetailsViewInsertedEventArgs.cs
- Command.cs
- BaseCollection.cs
- ThrowHelper.cs
- MouseGesture.cs
- IBuiltInEvidence.cs
- RotateTransform.cs
- EnumerableValidator.cs
- TextRangeProviderWrapper.cs
- CorePropertiesFilter.cs
- BitmapScalingModeValidation.cs
- MatrixAnimationUsingPath.cs
- Matrix3DConverter.cs
- CompositeActivityMarkupSerializer.cs
- ConfigurationValidatorAttribute.cs
- PerformanceCounterCategory.cs
- WebPartConnectionsConnectVerb.cs