Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 2 / TransformerInfoCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Configuration; using System.Collections; using System.Collections.Specialized; using System.Security.Principal; using System.Web; using System.Web.Compilation; using System.Web.Configuration; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.Util; using System.Xml; using System.Security.Permissions; [ConfigurationCollection(typeof(TransformerInfo))] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class TransformerInfoCollection : ConfigurationElementCollection { private static ConfigurationPropertyCollection _properties; private Hashtable _transformerEntries; static TransformerInfoCollection() { _properties = new ConfigurationPropertyCollection(); } ///protected override ConfigurationPropertyCollection Properties { get { return _properties; } } public TransformerInfo this[int index] { get { return (TransformerInfo)BaseGet(index); } set { if (BaseGet(index) != null) { BaseRemoveAt(index); } BaseAdd(index, value); } } public void Add(TransformerInfo transformerInfo) { BaseAdd(transformerInfo); } public void Clear() { BaseClear(); } /// protected override ConfigurationElement CreateNewElement() { return new TransformerInfo(); } public void Remove(string s) { BaseRemove(s); } public void RemoveAt(int index) { BaseRemoveAt(index); } /// protected override object GetElementKey(ConfigurationElement element) { return ((TransformerInfo)element).Name; } internal Hashtable GetTransformerEntries() { if (_transformerEntries == null) { lock (this) { if (_transformerEntries == null) { _transformerEntries = new Hashtable(StringComparer.OrdinalIgnoreCase); foreach (TransformerInfo ti in this) { Type transformerType = ConfigUtil.GetType(ti.Type, "type", ti); if (transformerType.IsSubclassOf(typeof(WebPartTransformer)) == false) { throw new ConfigurationErrorsException( SR.GetString( SR.Type_doesnt_inherit_from_type, ti.Type, typeof(WebPartTransformer).FullName), ti.ElementInformation.Properties["type"].Source, ti.ElementInformation.Properties["type"].LineNumber); } Type consumerType; Type providerType; try { consumerType = WebPartTransformerAttribute.GetConsumerType(transformerType); providerType = WebPartTransformerAttribute.GetProviderType(transformerType); } catch (Exception e) { throw new ConfigurationErrorsException( SR.GetString(SR.Transformer_attribute_error, e.Message), e, ti.ElementInformation.Properties["type"].Source, ti.ElementInformation.Properties["type"].LineNumber); } if (_transformerEntries.Count != 0) { foreach (DictionaryEntry entry in _transformerEntries) { Type existingTransformerType = (Type)entry.Value; // We know these methods will not throw, because for the type to be in the transformers // collection, we must have successfully gotten the types previously without an exception. Type existingConsumerType = WebPartTransformerAttribute.GetConsumerType(existingTransformerType); Type existingProviderType = WebPartTransformerAttribute.GetProviderType(existingTransformerType); if ((consumerType == existingConsumerType) && (providerType == existingProviderType)) { throw new ConfigurationErrorsException( SR.GetString( SR.Transformer_types_already_added, (string)entry.Key, ti.Name), ti.ElementInformation.Properties["type"].Source, ti.ElementInformation.Properties["type"].LineNumber); } } } _transformerEntries[ti.Name] = transformerType; } } } } // return _transformerEntries; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlConnectionPoolProviderInfo.cs
- XMLSyntaxException.cs
- CompilerHelpers.cs
- ObjectViewQueryResultData.cs
- GridViewHeaderRowPresenter.cs
- RuntimeCompatibilityAttribute.cs
- XmlStringTable.cs
- DeclarationUpdate.cs
- Internal.cs
- XPathNode.cs
- StaticExtension.cs
- DBAsyncResult.cs
- SourceInterpreter.cs
- CookieProtection.cs
- InputElement.cs
- PerformanceCounterNameAttribute.cs
- ComponentFactoryHelpers.cs
- TrustManagerMoreInformation.cs
- ScriptManagerProxy.cs
- StyleHelper.cs
- UdpTransportSettingsElement.cs
- DefaultMemberAttribute.cs
- BaseValidator.cs
- COM2PropertyDescriptor.cs
- WinCategoryAttribute.cs
- ActivationServices.cs
- CodeMemberMethod.cs
- BulletChrome.cs
- CategoryEditor.cs
- InputProviderSite.cs
- DecimalAnimationBase.cs
- StructuralCache.cs
- Request.cs
- ManagementEventArgs.cs
- XmlnsDictionary.cs
- StateDesigner.Helpers.cs
- CngUIPolicy.cs
- GlobalizationSection.cs
- RubberbandSelector.cs
- WebMessageEncodingBindingElement.cs
- XmlWriterSettings.cs
- DictationGrammar.cs
- HttpRequestContext.cs
- NamespaceEmitter.cs
- TrustLevel.cs
- Expression.cs
- SingleAnimationBase.cs
- MessageProtectionOrder.cs
- ListBoxAutomationPeer.cs
- XPathBinder.cs
- PartialCachingAttribute.cs
- ClockGroup.cs
- EndEvent.cs
- StylusButtonCollection.cs
- FloaterBaseParaClient.cs
- MessageBuilder.cs
- NopReturnReader.cs
- EntityStoreSchemaGenerator.cs
- RtfFormatStack.cs
- BamlRecords.cs
- MimeMultiPart.cs
- MeshGeometry3D.cs
- AdapterDictionary.cs
- DateTimeOffsetConverter.cs
- FontFamilyConverter.cs
- CompiledXpathExpr.cs
- BufferedGraphics.cs
- EventSetter.cs
- DocumentViewerConstants.cs
- BindingCollection.cs
- XmlNavigatorStack.cs
- ExceptionRoutedEventArgs.cs
- CalendarData.cs
- AppLevelCompilationSectionCache.cs
- CustomTypeDescriptor.cs
- SqlInternalConnection.cs
- HostingEnvironmentWrapper.cs
- TagMapInfo.cs
- DynamicPropertyHolder.cs
- InputGestureCollection.cs
- AttributedMetaModel.cs
- ScrollChangedEventArgs.cs
- TemplateBindingExpression.cs
- StringWriter.cs
- ManipulationInertiaStartingEventArgs.cs
- JsonReaderWriterFactory.cs
- CodeIdentifiers.cs
- PolyBezierSegment.cs
- EndpointDiscoveryMetadata11.cs
- XamlSerializationHelper.cs
- PenLineJoinValidation.cs
- SignerInfo.cs
- TreeView.cs
- MULTI_QI.cs
- ProfilePropertyMetadata.cs
- ReachDocumentReferenceSerializer.cs
- PrinterResolution.cs
- GenericTypeParameterBuilder.cs
- XsdBuilder.cs
- TextServicesDisplayAttribute.cs