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
- MethodCallTranslator.cs
- XmlAttributeCache.cs
- UserInitiatedRoutedEventPermission.cs
- MobileFormsAuthentication.cs
- DbSourceParameterCollection.cs
- BlobPersonalizationState.cs
- BitmapData.cs
- InvokeMethodActivityDesigner.cs
- NaturalLanguageHyphenator.cs
- ExpressionBindingCollection.cs
- TimerElapsedEvenArgs.cs
- _RequestCacheProtocol.cs
- ReadWriteObjectLock.cs
- GenericPrincipal.cs
- ResourceDictionaryCollection.cs
- ManipulationCompletedEventArgs.cs
- TextAnchor.cs
- FrameworkRichTextComposition.cs
- FlowDocumentPageViewerAutomationPeer.cs
- TextEditorSpelling.cs
- DynamicUpdateCommand.cs
- AnnotationMap.cs
- WeakReferenceKey.cs
- ConstraintStruct.cs
- CatalogPartCollection.cs
- HtmlContainerControl.cs
- XamlTreeBuilder.cs
- OverlappedAsyncResult.cs
- latinshape.cs
- IndependentAnimationStorage.cs
- AssemblyHash.cs
- MergePropertyDescriptor.cs
- QueryInterceptorAttribute.cs
- StateDesigner.CommentLayoutGlyph.cs
- Typeface.cs
- SqlPersonalizationProvider.cs
- RenderData.cs
- DispatchProxy.cs
- PackageRelationshipCollection.cs
- UnsafeNativeMethods.cs
- TreeNodeMouseHoverEvent.cs
- InternalCompensate.cs
- SQLSingleStorage.cs
- WebSysDescriptionAttribute.cs
- ScrollItemPatternIdentifiers.cs
- PathFigureCollection.cs
- XmlSchemaDatatype.cs
- KoreanCalendar.cs
- OutputCacheProfile.cs
- ListenerElementsCollection.cs
- Query.cs
- TypeHelpers.cs
- ListControlConvertEventArgs.cs
- AllMembershipCondition.cs
- FontSizeConverter.cs
- KerberosRequestorSecurityTokenAuthenticator.cs
- WebResponse.cs
- LayoutSettings.cs
- TypeValidationEventArgs.cs
- XamlTypeWithExplicitNamespace.cs
- FontSourceCollection.cs
- ParamArrayAttribute.cs
- AttributeCollection.cs
- MsmqBindingElementBase.cs
- Label.cs
- HtmlShim.cs
- LocatorGroup.cs
- WindowsFormsHostAutomationPeer.cs
- NotConverter.cs
- CaseCqlBlock.cs
- KeyedQueue.cs
- AutomationPropertyInfo.cs
- DiscoveryCallbackBehavior.cs
- OrderingInfo.cs
- BackgroundWorker.cs
- PerformanceCountersElement.cs
- TimeSpanSecondsConverter.cs
- FocusManager.cs
- BackEase.cs
- DataGridViewColumn.cs
- CreateParams.cs
- TextSpan.cs
- PropertyBuilder.cs
- ControlParameter.cs
- PackUriHelper.cs
- ServicePointManager.cs
- ExpressionPrinter.cs
- XPathArrayIterator.cs
- BaseCodePageEncoding.cs
- RoleManagerEventArgs.cs
- safePerfProviderHandle.cs
- XmlCharCheckingWriter.cs
- IdentityManager.cs
- _LoggingObject.cs
- DataGridViewComboBoxEditingControl.cs
- SqlConnectionManager.cs
- EntityViewGenerationAttribute.cs
- isolationinterop.cs
- AttributeCollection.cs
- EDesignUtil.cs