Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- StateFinalizationActivity.cs
- SamlSecurityToken.cs
- HttpServerUtilityWrapper.cs
- GridViewColumnHeaderAutomationPeer.cs
- TextTreeText.cs
- DataGridViewColumnEventArgs.cs
- DrawToolTipEventArgs.cs
- BaseCodePageEncoding.cs
- MessagePartProtectionMode.cs
- BaseAsyncResult.cs
- SoapEnumAttribute.cs
- ApplicationCommands.cs
- MimeTypeMapper.cs
- CngAlgorithm.cs
- ErrorCodes.cs
- XmlUtf8RawTextWriter.cs
- StringReader.cs
- Matrix3DValueSerializer.cs
- DataGridClipboardHelper.cs
- View.cs
- MapPathBasedVirtualPathProvider.cs
- LabelDesigner.cs
- PageCache.cs
- MetadataSource.cs
- DataStreamFromComStream.cs
- XmlSchemaAppInfo.cs
- PieceNameHelper.cs
- ArrayElementGridEntry.cs
- FlatButtonAppearance.cs
- TextCompositionEventArgs.cs
- InvalidAsynchronousStateException.cs
- PointLight.cs
- RequestCacheEntry.cs
- DataGridDetailsPresenter.cs
- SoapServerMethod.cs
- Component.cs
- LineServicesRun.cs
- GlobalEventManager.cs
- StatusBarPanel.cs
- CustomLineCap.cs
- ConfigurationManagerHelper.cs
- __ConsoleStream.cs
- Pair.cs
- PropertyDescriptorCollection.cs
- ThreadStartException.cs
- QueryableFilterRepeater.cs
- AutomationPropertyInfo.cs
- Label.cs
- NamespaceInfo.cs
- TextServicesDisplayAttribute.cs
- ProgressBarRenderer.cs
- WebRequestModulesSection.cs
- XmlWhitespace.cs
- ImageCodecInfo.cs
- UpWmlMobileTextWriter.cs
- DescendantBaseQuery.cs
- XmlComplianceUtil.cs
- FormsAuthenticationModule.cs
- FlowDocumentScrollViewer.cs
- ObjectDataSourceView.cs
- ComponentSerializationService.cs
- PageCatalogPart.cs
- ToolStripDropDown.cs
- UnsafeNativeMethodsCLR.cs
- UnitySerializationHolder.cs
- SqlInternalConnection.cs
- DataGridPageChangedEventArgs.cs
- PageBreakRecord.cs
- ThemeDirectoryCompiler.cs
- FieldToken.cs
- Row.cs
- QueryResponse.cs
- MemberPath.cs
- FixedTextBuilder.cs
- DataSourceControl.cs
- PenThreadPool.cs
- MailBnfHelper.cs
- DataSetSchema.cs
- AuthenticationManager.cs
- ToolStripContentPanel.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- SchemaImporterExtensionsSection.cs
- GridViewUpdatedEventArgs.cs
- PolicyDesigner.cs
- WeakReferenceKey.cs
- HttpCookie.cs
- SafeNativeMethods.cs
- MediaContextNotificationWindow.cs
- BigIntegerStorage.cs
- XamlToRtfWriter.cs
- DocumentPageViewAutomationPeer.cs
- XmlSecureResolver.cs
- DataSourceHelper.cs
- BaseProcessor.cs
- CompositeTypefaceMetrics.cs
- ResXFileRef.cs
- MemoryMappedViewStream.cs
- SettingsSavedEventArgs.cs
- DefaultBindingPropertyAttribute.cs
- ColumnBinding.cs