Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Configuration / TransformerInfoCollection.cs / 1 / 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;
}
}
}
// 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))]
[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;
}
}
}
// 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
- SQLStringStorage.cs
- ToolboxComponentsCreatedEventArgs.cs
- GradientStop.cs
- QilList.cs
- DockAndAnchorLayout.cs
- CustomError.cs
- Transaction.cs
- ProviderConnectionPointCollection.cs
- XmlILStorageConverter.cs
- HtmlTableCell.cs
- InstalledFontCollection.cs
- ConfigurationSchemaErrors.cs
- HostedController.cs
- Predicate.cs
- ArgumentException.cs
- PageWrapper.cs
- BuildProviderUtils.cs
- UIElementAutomationPeer.cs
- AllMembershipCondition.cs
- ObjectRef.cs
- GridPattern.cs
- CanonicalFontFamilyReference.cs
- GridViewPageEventArgs.cs
- Compiler.cs
- ListViewDeleteEventArgs.cs
- SplashScreen.cs
- SoapSchemaExporter.cs
- ISessionStateStore.cs
- pingexception.cs
- OverflowException.cs
- InputLanguageSource.cs
- UIElementPropertyUndoUnit.cs
- CommentGlyph.cs
- HostingEnvironment.cs
- ErrorHandlerModule.cs
- SimpleTextLine.cs
- contentDescriptor.cs
- SmiXetterAccessMap.cs
- XsdDateTime.cs
- CommentEmitter.cs
- ResponseStream.cs
- CounterSet.cs
- LocatorManager.cs
- WebPartDescriptionCollection.cs
- Matrix3D.cs
- TextMarkerSource.cs
- XPathNavigatorKeyComparer.cs
- ApplySecurityAndSendAsyncResult.cs
- XsltContext.cs
- XmlCompatibilityReader.cs
- MetafileHeader.cs
- ForEach.cs
- EntityParameter.cs
- KeyValueInternalCollection.cs
- CodeEntryPointMethod.cs
- DataGridViewControlCollection.cs
- PropertyDescriptor.cs
- EditorAttributeInfo.cs
- CodeSubDirectoriesCollection.cs
- StorageModelBuildProvider.cs
- DesignTimeTemplateParser.cs
- EditorZoneAutoFormat.cs
- TdsParserStateObject.cs
- DataGridViewCellStyle.cs
- TypeReference.cs
- SymbolEqualComparer.cs
- BevelBitmapEffect.cs
- SqlBooleanizer.cs
- ConnectionStringsExpressionBuilder.cs
- ConfigXmlWhitespace.cs
- SmiEventSink_Default.cs
- AndCondition.cs
- SqlDependency.cs
- InputLanguageEventArgs.cs
- IndexedWhereQueryOperator.cs
- DtrList.cs
- IriParsingElement.cs
- ProcessInputEventArgs.cs
- RichTextBoxConstants.cs
- TemplateField.cs
- XmlDataCollection.cs
- KeyValueInternalCollection.cs
- CTreeGenerator.cs
- CollectionsUtil.cs
- Comparer.cs
- OracleRowUpdatedEventArgs.cs
- Figure.cs
- TransactionManager.cs
- AnnouncementInnerClient11.cs
- QilSortKey.cs
- RewritingValidator.cs
- OutputCacheProfileCollection.cs
- DependencyPropertyChangedEventArgs.cs
- RelatedPropertyManager.cs
- DataRow.cs
- PropertyHelper.cs
- Figure.cs
- ImpersonationContext.cs
- VariantWrapper.cs
- Model3DGroup.cs