Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / ProtocolsConfiguration.cs / 2 / ProtocolsConfiguration.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System.IO;
using System.Runtime.Serialization.Formatters;
using System.Threading;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Collections;
using System.Configuration;
using System.Reflection;
using System.Globalization;
using System.Web.Hosting;
using System.Web.Security;
using System.Web.Util;
using System.Xml;
internal class ProtocolsConfiguration {
private Hashtable _protocolEntries = new Hashtable();
internal ProtocolsConfiguration(XmlNode section) {
// process XML section in order and apply the directives
HandlerBase.CheckForUnrecognizedAttributes(section);
foreach (XmlNode child in section.ChildNodes) {
// skip whitespace and comments
if (IsIgnorableAlsoCheckForNonElement(child))
continue;
// process elements
if (child.Name == "add") {
String id = HandlerBase.RemoveRequiredAttribute(child, "id");
String phType = HandlerBase.RemoveRequiredAttribute(child, "processHandlerType");
String ahType = HandlerBase.RemoveRequiredAttribute(child, "appDomainHandlerType");
bool validate = true;
HandlerBase.GetAndRemoveBooleanAttribute(child, "validate", ref validate);
HandlerBase.CheckForUnrecognizedAttributes(child);
HandlerBase.CheckForNonCommentChildNodes(child);
// check duplicate Id
/* TEMPORARY allow duplicates for easy Indigo machine.config update
if (_protocolEntries[id] != null) {
throw new ConfigurationErrorsException(
SR.GetString(SR.Dup_protocol_id, id),
child);
}
*/
// add entry
/* TEMPORARY hide errors and ignore bad tags
to let breaking changes through */
try {
_protocolEntries[id] = new ProtocolsConfigurationEntry(
id, phType, ahType, validate,
ConfigurationErrorsException.GetFilename(child),
ConfigurationErrorsException.GetLineNumber(child));
}
catch {
}
}
else {
HandlerBase.ThrowUnrecognizedElement(child);
}
}
}
private bool IsIgnorableAlsoCheckForNonElement(XmlNode node) {
if (node.NodeType == XmlNodeType.Comment || node.NodeType == XmlNodeType.Whitespace) {
return true;
}
if (node.NodeType != XmlNodeType.Element)
{
throw new ConfigurationErrorsException(
SR.GetString(SR.Config_base_elements_only),
node);
}
return false;
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpResponseInternalWrapper.cs
- NamedPipeActivation.cs
- Assembly.cs
- LocationUpdates.cs
- TreeNodeConverter.cs
- Lock.cs
- StringArrayConverter.cs
- XmlnsCache.cs
- SatelliteContractVersionAttribute.cs
- ConfigurationValue.cs
- SoapReflectionImporter.cs
- ClientUtils.cs
- XmlSubtreeReader.cs
- InternalConfigHost.cs
- BrowserCapabilitiesCodeGenerator.cs
- ContactManager.cs
- ContentFileHelper.cs
- QueryableDataSourceEditData.cs
- OpCellTreeNode.cs
- ValidatorCompatibilityHelper.cs
- SessionStateModule.cs
- AttachedAnnotationChangedEventArgs.cs
- XmlTextEncoder.cs
- SqlFlattener.cs
- SqlClientWrapperSmiStream.cs
- MenuItemStyle.cs
- BinaryMethodMessage.cs
- NameValueSectionHandler.cs
- xml.cs
- Stackframe.cs
- SmiContextFactory.cs
- CompositionTarget.cs
- XmlSchemaAll.cs
- TreeViewImageIndexConverter.cs
- RootProfilePropertySettingsCollection.cs
- TemplateInstanceAttribute.cs
- RtfControls.cs
- ListViewSelectEventArgs.cs
- FormsIdentity.cs
- DesignerSerializationVisibilityAttribute.cs
- DataGridViewButtonColumn.cs
- Deflater.cs
- ApplicationFileParser.cs
- XmlSchemaCompilationSettings.cs
- AutoFocusStyle.xaml.cs
- BaseTreeIterator.cs
- Parameter.cs
- FileDialog.cs
- Compiler.cs
- XNodeNavigator.cs
- _IPv4Address.cs
- ConnectionStringsSection.cs
- BinaryMethodMessage.cs
- AssociatedControlConverter.cs
- ToolStripItemTextRenderEventArgs.cs
- ValidationEventArgs.cs
- Events.cs
- SqlDataSourceStatusEventArgs.cs
- DependentTransaction.cs
- XmlReflectionMember.cs
- _ConnectOverlappedAsyncResult.cs
- EntityClientCacheKey.cs
- ColumnWidthChangingEvent.cs
- ObjectPropertyMapping.cs
- VolatileEnlistmentState.cs
- WindowsSpinner.cs
- SystemPens.cs
- AnnotationResourceCollection.cs
- X509Certificate2Collection.cs
- ToolboxComponentsCreatedEventArgs.cs
- TextSerializer.cs
- OperationInfo.cs
- FrameworkContentElement.cs
- TreeNode.cs
- ReceiveSecurityHeader.cs
- input.cs
- DecimalSumAggregationOperator.cs
- DataSourceExpressionCollection.cs
- WebProxyScriptElement.cs
- XmlNotation.cs
- EditBehavior.cs
- EntitySqlException.cs
- FixedSOMSemanticBox.cs
- ExitEventArgs.cs
- ItemChangedEventArgs.cs
- FormViewModeEventArgs.cs
- InternalException.cs
- VirtualPathUtility.cs
- StorageBasedPackageProperties.cs
- ConfigXmlCDataSection.cs
- IsolatedStorageException.cs
- ParseHttpDate.cs
- TraceAsyncResult.cs
- FilterInvalidBodyAccessException.cs
- HistoryEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- MobileListItemCollection.cs
- CustomErrorsSection.cs
- EntityDataReader.cs
- CreateUserWizardStep.cs