Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Configuration / ProtocolsConfiguration.cs / 1 / 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.
//------------------------------------------------------------------------------
//
// 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
- XamlFxTrace.cs
- cryptoapiTransform.cs
- COM2PictureConverter.cs
- EncryptedXml.cs
- DataContractSerializerElement.cs
- SplayTreeNode.cs
- Double.cs
- ThreadStateException.cs
- DeviceContext.cs
- WindowsUpDown.cs
- ActivatableWorkflowsQueryResult.cs
- StringReader.cs
- ExpandCollapsePattern.cs
- Camera.cs
- ContentOperations.cs
- ProfileGroupSettings.cs
- DetailsViewCommandEventArgs.cs
- typedescriptorpermissionattribute.cs
- DataGridViewLayoutData.cs
- Expressions.cs
- BrushValueSerializer.cs
- Panel.cs
- EdmPropertyAttribute.cs
- SystemSounds.cs
- Validator.cs
- Signature.cs
- smtppermission.cs
- LostFocusEventManager.cs
- IISMapPath.cs
- CompilerInfo.cs
- EntityConnectionStringBuilderItem.cs
- RadioButtonAutomationPeer.cs
- Marshal.cs
- LinkClickEvent.cs
- OleDbEnumerator.cs
- DataGridHelper.cs
- wmiprovider.cs
- COAUTHIDENTITY.cs
- TextRangeAdaptor.cs
- AppDomain.cs
- UnhandledExceptionEventArgs.cs
- SqlVersion.cs
- InfiniteTimeSpanConverter.cs
- ReadOnlyActivityGlyph.cs
- TransportContext.cs
- SqlFlattener.cs
- Int64AnimationBase.cs
- WebPartEditVerb.cs
- ExpressionPrefixAttribute.cs
- IPipelineRuntime.cs
- AppendHelper.cs
- SecureStringHasher.cs
- Track.cs
- TextDpi.cs
- MimeObjectFactory.cs
- SourceInterpreter.cs
- SignatureHelper.cs
- UnsafeNetInfoNativeMethods.cs
- Encoding.cs
- CodeDOMProvider.cs
- AdPostCacheSubstitution.cs
- RuleProcessor.cs
- GridViewDeletedEventArgs.cs
- FaultConverter.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- SettingsPropertyNotFoundException.cs
- LineSegment.cs
- InternalSafeNativeMethods.cs
- RecommendedAsConfigurableAttribute.cs
- mansign.cs
- SqlBulkCopyColumnMapping.cs
- HttpRequestCacheValidator.cs
- DataBinding.cs
- ListItem.cs
- TimeoutTimer.cs
- BitSet.cs
- ToolStripItemGlyph.cs
- EntityWrapper.cs
- DataGridColumnCollection.cs
- SimplePropertyEntry.cs
- OLEDB_Enum.cs
- TextStore.cs
- DefaultAsyncDataDispatcher.cs
- Cursors.cs
- FamilyMap.cs
- MultiPropertyDescriptorGridEntry.cs
- X509ChainElement.cs
- RegistrySecurity.cs
- X509Utils.cs
- XmlConvert.cs
- BinHexDecoder.cs
- MembershipPasswordException.cs
- UserControl.cs
- TextUtf8RawTextWriter.cs
- RangeBase.cs
- PageThemeBuildProvider.cs
- InheritanceContextChangedEventManager.cs
- dsa.cs
- GlobalizationAssembly.cs
- FormatterServices.cs