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
- BreakSafeBase.cs
- Stacktrace.cs
- DateRangeEvent.cs
- ComplexPropertyEntry.cs
- COAUTHIDENTITY.cs
- ActivityTrace.cs
- TemplateXamlTreeBuilder.cs
- WeakEventTable.cs
- _Events.cs
- RIPEMD160Managed.cs
- Mappings.cs
- ToolStripSeparator.cs
- Transform.cs
- UpdatePanelControlTrigger.cs
- OleDbException.cs
- Literal.cs
- TraceSection.cs
- WebResponse.cs
- XmlObjectSerializerReadContextComplex.cs
- MultipleViewPattern.cs
- CellConstantDomain.cs
- WebRequest.cs
- LogoValidationException.cs
- IOThreadScheduler.cs
- SoapReflectionImporter.cs
- PriorityQueue.cs
- RSAPKCS1SignatureFormatter.cs
- RemoteWebConfigurationHost.cs
- Documentation.cs
- QueryParameter.cs
- Zone.cs
- ProjectionQueryOptionExpression.cs
- CryptographicAttribute.cs
- EncoderExceptionFallback.cs
- Matrix3DValueSerializer.cs
- NoResizeSelectionBorderGlyph.cs
- CodeIterationStatement.cs
- StylusPointPropertyInfo.cs
- IndentedWriter.cs
- SystemTcpConnection.cs
- PointAnimationUsingPath.cs
- SafeLocalMemHandle.cs
- DispatchWrapper.cs
- QuaternionAnimation.cs
- StyleBamlTreeBuilder.cs
- SqlDependencyUtils.cs
- Cast.cs
- QilLiteral.cs
- SamlEvidence.cs
- Stopwatch.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- EventBuilder.cs
- HyperLink.cs
- CollectionViewGroupInternal.cs
- ImageMap.cs
- NameTable.cs
- CompensationDesigner.cs
- RedirectionProxy.cs
- ArgumentElement.cs
- DesignerTransactionCloseEvent.cs
- TextRangeProviderWrapper.cs
- ListComponentEditorPage.cs
- CodeThrowExceptionStatement.cs
- StrongNameIdentityPermission.cs
- SpecularMaterial.cs
- WebPartConnectionsConfigureVerb.cs
- TogglePatternIdentifiers.cs
- DataSourceDesigner.cs
- MediaTimeline.cs
- ADMembershipProvider.cs
- LZCodec.cs
- XmlText.cs
- COAUTHIDENTITY.cs
- MSAAEventDispatcher.cs
- EntityContainerAssociationSetEnd.cs
- WindowsRichEditRange.cs
- ResourceContainerWrapper.cs
- FormattedText.cs
- FixedPageAutomationPeer.cs
- SplashScreenNativeMethods.cs
- TimeSpanStorage.cs
- TemplateXamlParser.cs
- LogReserveAndAppendState.cs
- EnumValAlphaComparer.cs
- Predicate.cs
- ImportFileRequest.cs
- WindowsEditBoxRange.cs
- VariableReference.cs
- TemplateControlCodeDomTreeGenerator.cs
- Win32KeyboardDevice.cs
- ClientTarget.cs
- ServiceOperation.cs
- DataControlExtensions.cs
- SecurityTokenReferenceStyle.cs
- ToolStripItemImageRenderEventArgs.cs
- FixedTextContainer.cs
- TypeResolver.cs
- WebPartConnection.cs
- HwndTarget.cs
- DSASignatureDeformatter.cs