Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 1305376 / 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))] 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // 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))] 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataSourceXmlElementAttribute.cs
- IntegerCollectionEditor.cs
- RuntimeResourceSet.cs
- FlagsAttribute.cs
- QilNode.cs
- Viewport3DAutomationPeer.cs
- HttpCacheVaryByContentEncodings.cs
- MarkerProperties.cs
- DynamicObject.cs
- SystemParameters.cs
- DiscoveryClientReferences.cs
- BufferedGraphicsContext.cs
- Underline.cs
- QueryExpr.cs
- AppDomain.cs
- DbProviderSpecificTypePropertyAttribute.cs
- AudioBase.cs
- Roles.cs
- DomNameTable.cs
- PasswordTextNavigator.cs
- SmiConnection.cs
- GroupBox.cs
- ActivityUtilities.cs
- ScriptReferenceEventArgs.cs
- AuthenticationSection.cs
- AccessibleObject.cs
- SessionEndingEventArgs.cs
- XPathArrayIterator.cs
- NullableFloatAverageAggregationOperator.cs
- ObjectListTitleAttribute.cs
- RegexGroupCollection.cs
- ReverseInheritProperty.cs
- NativeMethodsCLR.cs
- EntityDataSourceSelectedEventArgs.cs
- DataMember.cs
- SiteMapProvider.cs
- Camera.cs
- ApplicationManager.cs
- ApplicationBuildProvider.cs
- StrictAndMessageFilter.cs
- WinFormsUtils.cs
- ObjectKeyFrameCollection.cs
- Peer.cs
- Model3DGroup.cs
- StylusPointCollection.cs
- TerminatorSinks.cs
- ServiceTimeoutsElement.cs
- StateMachineSubscriptionManager.cs
- SurrogateEncoder.cs
- HtmlForm.cs
- EntityContainer.cs
- MdiWindowListItemConverter.cs
- HttpServerUtilityWrapper.cs
- PrintDialog.cs
- DataExpression.cs
- MSHTMLHost.cs
- ResolveMatchesCD1.cs
- VisualTreeHelper.cs
- ParagraphResult.cs
- MtomMessageEncodingBindingElement.cs
- MaskedTextBoxDesignerActionList.cs
- TransformBlockRequest.cs
- QueryConverter.cs
- ColumnWidthChangingEvent.cs
- ValueUtilsSmi.cs
- SignatureToken.cs
- UriPrefixTable.cs
- XmlQualifiedName.cs
- HierarchicalDataSourceControl.cs
- StringComparer.cs
- MaskedTextBoxTextEditor.cs
- Clock.cs
- GetLastErrorDetailsRequest.cs
- LogAppendAsyncResult.cs
- QueryReaderSettings.cs
- NumberFunctions.cs
- ObjectDataSourceMethodEventArgs.cs
- PresentationAppDomainManager.cs
- ClipboardProcessor.cs
- MatrixKeyFrameCollection.cs
- CodeTypeParameterCollection.cs
- XmlSerializerOperationBehavior.cs
- PrePostDescendentsWalker.cs
- Scheduling.cs
- WebFormsRootDesigner.cs
- UnmanagedMemoryStream.cs
- WorkflowElementDialog.cs
- COM2ExtendedBrowsingHandler.cs
- Parsers.cs
- NativeMethods.cs
- OdbcDataReader.cs
- Section.cs
- XmlUrlResolver.cs
- ResXResourceSet.cs
- _UriTypeConverter.cs
- ApplicationContext.cs
- WaitForChangedResult.cs
- validation.cs
- ScalarConstant.cs
- FontFamily.cs