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
- Point3DCollectionConverter.cs
- EventlogProvider.cs
- FixedPosition.cs
- ThreadStartException.cs
- DataServiceProviderMethods.cs
- ObjectNavigationPropertyMapping.cs
- SystemWebSectionGroup.cs
- ServiceParser.cs
- CacheVirtualItemsEvent.cs
- Parameter.cs
- ConfigXmlReader.cs
- OleDbStruct.cs
- ManagedWndProcTracker.cs
- CommonObjectSecurity.cs
- GroupAggregateExpr.cs
- Int32Rect.cs
- PathTooLongException.cs
- GridViewColumnHeader.cs
- TextParagraphView.cs
- BamlBinaryReader.cs
- CodeTypeReferenceCollection.cs
- ListViewGroupItemCollection.cs
- EntitySqlQueryBuilder.cs
- ClipboardData.cs
- StorageMappingItemLoader.cs
- ComPlusServiceLoader.cs
- ContentValidator.cs
- TextPatternIdentifiers.cs
- ThreadStaticAttribute.cs
- ZipIOModeEnforcingStream.cs
- HiddenFieldDesigner.cs
- TextBoxView.cs
- SimpleRecyclingCache.cs
- TextEditorDragDrop.cs
- UseAttributeSetsAction.cs
- OdbcError.cs
- ContentPresenter.cs
- XmlSchemaNotation.cs
- basemetadatamappingvisitor.cs
- SqlRowUpdatedEvent.cs
- CellRelation.cs
- ConfigXmlWhitespace.cs
- ConsoleTraceListener.cs
- SqlParameterCollection.cs
- GlyphingCache.cs
- XmlDocumentFieldSchema.cs
- HelpProvider.cs
- UnsafeNativeMethods.cs
- SimpleWorkerRequest.cs
- SizeFConverter.cs
- FunctionNode.cs
- NameTable.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- FileLogRecordStream.cs
- ResourceDisplayNameAttribute.cs
- SiteMapDesignerDataSourceView.cs
- MenuItem.cs
- WebReferencesBuildProvider.cs
- Win32.cs
- odbcmetadatafactory.cs
- XmlNullResolver.cs
- ConvertEvent.cs
- CompoundFileDeflateTransform.cs
- UnsafeNativeMethods.cs
- ConfigurationSettings.cs
- SqlCommand.cs
- OverflowException.cs
- BindableAttribute.cs
- BaseDataBoundControlDesigner.cs
- NullableBoolConverter.cs
- XsdValidatingReader.cs
- WorkflowServiceOperationListItem.cs
- _AutoWebProxyScriptHelper.cs
- StrongTypingException.cs
- Int32EqualityComparer.cs
- SHA1.cs
- ConnectionManagementElement.cs
- SerializationEventsCache.cs
- AppDomainShutdownMonitor.cs
- PopupEventArgs.cs
- AttributeData.cs
- GeneratedView.cs
- ExternalDataExchangeService.cs
- BamlCollectionHolder.cs
- ListViewUpdateEventArgs.cs
- SchemaDeclBase.cs
- GeometryGroup.cs
- DetailsViewAutoFormat.cs
- WaitingCursor.cs
- WebPartUtil.cs
- XmlSchemaAny.cs
- EventLogPermissionAttribute.cs
- EntitySqlQueryState.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridCell.cs
- DrawToolTipEventArgs.cs
- UndoManager.cs
- PageThemeCodeDomTreeGenerator.cs
- HTMLTagNameToTypeMapper.cs
- EditorZoneBase.cs