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
- EdmItemCollection.cs
- SafeThreadHandle.cs
- ControlPaint.cs
- SortedSet.cs
- SqlDataReader.cs
- InvalidEnumArgumentException.cs
- X500Name.cs
- MSAAWinEventWrap.cs
- AbstractDataSvcMapFileLoader.cs
- Codec.cs
- FunctionMappingTranslator.cs
- SeekableReadStream.cs
- SHA1.cs
- SecUtil.cs
- KeyValuePairs.cs
- Merger.cs
- OpenTypeCommon.cs
- ManagedIStream.cs
- COM2EnumConverter.cs
- HtmlContainerControl.cs
- Stackframe.cs
- ListChangedEventArgs.cs
- AssemblyAttributes.cs
- MouseBinding.cs
- PartialList.cs
- Context.cs
- EastAsianLunisolarCalendar.cs
- PropertyGridView.cs
- ClientTargetSection.cs
- TimelineClockCollection.cs
- RequiredFieldValidator.cs
- ConfigPathUtility.cs
- ContractListAdapter.cs
- ExtentCqlBlock.cs
- SiteMembershipCondition.cs
- DesignerProperties.cs
- ExecutedRoutedEventArgs.cs
- StyleReferenceConverter.cs
- RawTextInputReport.cs
- DataListItemEventArgs.cs
- BridgeDataReader.cs
- versioninfo.cs
- WindowsGraphicsWrapper.cs
- ProxyFragment.cs
- NamespaceInfo.cs
- OdbcRowUpdatingEvent.cs
- SignedPkcs7.cs
- ScrollableControl.cs
- WrappedIUnknown.cs
- PropertyValueUIItem.cs
- MatrixTransform.cs
- MasterPageCodeDomTreeGenerator.cs
- EmptyReadOnlyDictionaryInternal.cs
- FixedBufferAttribute.cs
- ExpressionConverter.cs
- WebScriptEnablingBehavior.cs
- XmlSerializableServices.cs
- FlowLayoutSettings.cs
- QueryableDataSourceHelper.cs
- RegexRunner.cs
- HtmlTextBoxAdapter.cs
- TemplateInstanceAttribute.cs
- DataGridCommandEventArgs.cs
- InputManager.cs
- ChannelFactoryBase.cs
- PhysicalAddress.cs
- PrinterSettings.cs
- InvalidCastException.cs
- ICspAsymmetricAlgorithm.cs
- InProcStateClientManager.cs
- OleCmdHelper.cs
- Keywords.cs
- LazyTextWriterCreator.cs
- SqlTransaction.cs
- LinqDataSourceContextEventArgs.cs
- ExecutionEngineException.cs
- Graph.cs
- TransformFinalBlockRequest.cs
- WebPartTransformerCollection.cs
- DownloadProgressEventArgs.cs
- PeerPresenceInfo.cs
- HitTestResult.cs
- JapaneseCalendar.cs
- PageParser.cs
- ChangeInterceptorAttribute.cs
- webclient.cs
- CodeEntryPointMethod.cs
- WindowsRebar.cs
- Odbc32.cs
- FormatException.cs
- VideoDrawing.cs
- SeparatorAutomationPeer.cs
- CustomWebEventKey.cs
- TableTextElementCollectionInternal.cs
- MarkupCompiler.cs
- Int64KeyFrameCollection.cs
- BaseComponentEditor.cs
- ProfileProvider.cs
- DataGridCellsPresenter.cs
- DelayedRegex.cs