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
- DefaultAutoFieldGenerator.cs
- SecurityDescriptor.cs
- BookmarkWorkItem.cs
- KeyboardDevice.cs
- DependencyPropertyKind.cs
- SqlIdentifier.cs
- DataGridAddNewRow.cs
- WriterOutput.cs
- PrePostDescendentsWalker.cs
- RegexCaptureCollection.cs
- DataServiceException.cs
- CalendarDateChangedEventArgs.cs
- ObjectPersistData.cs
- IItemContainerGenerator.cs
- BitmapEffectGeneralTransform.cs
- PageSetupDialog.cs
- SignalGate.cs
- HtmlLink.cs
- SqlDataSourceSelectingEventArgs.cs
- Buffer.cs
- ValidatorCollection.cs
- ConfigurationErrorsException.cs
- XmlValidatingReader.cs
- DrawingVisualDrawingContext.cs
- EncryptedPackageFilter.cs
- SendKeys.cs
- HostSecurityManager.cs
- ResourceBinder.cs
- ManipulationDelta.cs
- DispatcherTimer.cs
- Serializer.cs
- TextPattern.cs
- MethodBody.cs
- FaultDesigner.cs
- TitleStyle.cs
- UIElement.cs
- AttributeEmitter.cs
- InkCanvasAutomationPeer.cs
- XslException.cs
- CollectionBase.cs
- AxisAngleRotation3D.cs
- ListParagraph.cs
- pingexception.cs
- ButtonChrome.cs
- BulletDecorator.cs
- SqlInternalConnection.cs
- CodeIndexerExpression.cs
- EncoderNLS.cs
- ToolStripDropDownMenu.cs
- TargetInvocationException.cs
- EDesignUtil.cs
- PropertyValueChangedEvent.cs
- SymLanguageVendor.cs
- CodeAssignStatement.cs
- SplineQuaternionKeyFrame.cs
- PolicyManager.cs
- HttpBrowserCapabilitiesBase.cs
- TransactionTable.cs
- ConfigUtil.cs
- _NativeSSPI.cs
- DefaultSerializationProviderAttribute.cs
- RankException.cs
- ICspAsymmetricAlgorithm.cs
- JumpPath.cs
- DashStyles.cs
- HotCommands.cs
- ReachSerializationCacheItems.cs
- FileAuthorizationModule.cs
- EntityContainerAssociationSetEnd.cs
- ViewStateModeByIdAttribute.cs
- SmtpLoginAuthenticationModule.cs
- MarkupWriter.cs
- PrivacyNoticeBindingElement.cs
- SystemResourceKey.cs
- MessagePartProtectionMode.cs
- ForEachAction.cs
- NumberSubstitution.cs
- FileInfo.cs
- TransformConverter.cs
- SystemBrushes.cs
- QueueTransferProtocol.cs
- XsdBuilder.cs
- CodeParameterDeclarationExpression.cs
- DictionaryMarkupSerializer.cs
- URLMembershipCondition.cs
- Collection.cs
- DbDeleteCommandTree.cs
- EventLogEntry.cs
- ProfileServiceManager.cs
- DurableInstanceManager.cs
- FactoryGenerator.cs
- ColumnTypeConverter.cs
- AppDomainCompilerProxy.cs
- DependencyPropertyDescriptor.cs
- ConnectionManagementSection.cs
- BindingSource.cs
- ValidatingReaderNodeData.cs
- MenuItem.cs
- EndOfStreamException.cs
- DesignTimeVisibleAttribute.cs