Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / ProtocolsConfiguration.cs / 1305376 / 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;
}
}
}
// 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
- VisualBrush.cs
- CommonRemoteMemoryBlock.cs
- activationcontext.cs
- NumberFormatInfo.cs
- TcpProcessProtocolHandler.cs
- XsltInput.cs
- ClassicBorderDecorator.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- CompilerErrorCollection.cs
- DesignerDataSourceView.cs
- BitmapEffectDrawing.cs
- WizardStepBase.cs
- unsafeIndexingFilterStream.cs
- ChoiceConverter.cs
- AssemblyHash.cs
- BuildProvider.cs
- FileDialog_Vista_Interop.cs
- ValueChangedEventManager.cs
- BasicKeyConstraint.cs
- DefaultBinder.cs
- ReplyChannel.cs
- X509Extension.cs
- MdiWindowListStrip.cs
- ProcessManager.cs
- WebHeaderCollection.cs
- GlyphShapingProperties.cs
- BaseValidatorDesigner.cs
- ServiceContractAttribute.cs
- Calendar.cs
- SqlReferenceCollection.cs
- WmlLinkAdapter.cs
- DataObjectCopyingEventArgs.cs
- EntitySet.cs
- ErrorWebPart.cs
- WindowsFormsHelpers.cs
- OleDbEnumerator.cs
- ObjectViewFactory.cs
- DateTimeValueSerializerContext.cs
- WindowsStartMenu.cs
- TreeViewDesigner.cs
- UnionExpr.cs
- CleanUpVirtualizedItemEventArgs.cs
- DataContext.cs
- TaskHelper.cs
- M3DUtil.cs
- EntityDescriptor.cs
- BinaryKeyIdentifierClause.cs
- PolyQuadraticBezierSegment.cs
- ApplicationServiceManager.cs
- CssClassPropertyAttribute.cs
- DateTimeFormatInfoScanner.cs
- ClientBuildManager.cs
- AnonymousIdentificationSection.cs
- CustomPopupPlacement.cs
- DataGridViewCellEventArgs.cs
- MemoryFailPoint.cs
- FlowLayoutPanel.cs
- WebPartEditVerb.cs
- DataTemplateSelector.cs
- HashAlgorithm.cs
- Receive.cs
- ThousandthOfEmRealPoints.cs
- XamlToRtfParser.cs
- RangeValueProviderWrapper.cs
- nulltextcontainer.cs
- HiddenField.cs
- ModelTreeEnumerator.cs
- XmlObjectSerializerReadContextComplex.cs
- GeometryHitTestResult.cs
- BackgroundWorker.cs
- HitTestDrawingContextWalker.cs
- AutoSizeComboBox.cs
- XmlAttributeCache.cs
- SecUtil.cs
- XmlSchemaSimpleTypeRestriction.cs
- Stroke2.cs
- GeometryHitTestResult.cs
- RequestCachePolicyConverter.cs
- RealizedColumnsBlock.cs
- LockingPersistenceProvider.cs
- DataGridViewCellMouseEventArgs.cs
- Window.cs
- FilterUserControlBase.cs
- ToolBarOverflowPanel.cs
- MenuAdapter.cs
- DataSourceSerializationException.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- XmlQueryTypeFactory.cs
- RC2CryptoServiceProvider.cs
- PageVisual.cs
- DataSourceExpressionCollection.cs
- StringDictionaryCodeDomSerializer.cs
- IBuiltInEvidence.cs
- AxisAngleRotation3D.cs
- WorkflowApplicationException.cs
- CoreSwitches.cs
- TabletDeviceInfo.cs
- DataGridViewCellParsingEventArgs.cs
- DefaultClaimSet.cs
- DrawingState.cs