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
- PhoneCall.cs
- TemplateApplicationHelper.cs
- Options.cs
- Selector.cs
- Internal.cs
- DebuggerAttributes.cs
- GC.cs
- XmlDocumentSerializer.cs
- ComponentManagerBroker.cs
- HitTestParameters.cs
- DPCustomTypeDescriptor.cs
- CapiHashAlgorithm.cs
- _ConnectOverlappedAsyncResult.cs
- UriGenerator.cs
- HwndTarget.cs
- HttpListenerPrefixCollection.cs
- ConfigurationPropertyCollection.cs
- HttpDebugHandler.cs
- SynchronizationLockException.cs
- CodeSpit.cs
- ChangeNode.cs
- DbParameterHelper.cs
- ComplexTypeEmitter.cs
- MembershipValidatePasswordEventArgs.cs
- Profiler.cs
- Exceptions.cs
- DSASignatureDeformatter.cs
- ImportDesigner.xaml.cs
- ProgramNode.cs
- _IPv6Address.cs
- NestedContainer.cs
- WorkflowInstanceQuery.cs
- ToolStripItemRenderEventArgs.cs
- MarkupExtensionParser.cs
- AnimationClockResource.cs
- TextBoxLine.cs
- SqlMetaData.cs
- SessionStateSection.cs
- XmlSchemaObject.cs
- XmlEntity.cs
- ExceptionAggregator.cs
- infer.cs
- SweepDirectionValidation.cs
- AsymmetricSignatureFormatter.cs
- MailMessageEventArgs.cs
- ImageMap.cs
- ImageField.cs
- RegistrationServices.cs
- RegularExpressionValidator.cs
- Select.cs
- PenThreadWorker.cs
- PrimarySelectionGlyph.cs
- LineServicesRun.cs
- DataRowChangeEvent.cs
- GrowingArray.cs
- CssClassPropertyAttribute.cs
- DesignerListAdapter.cs
- HGlobalSafeHandle.cs
- DispatchWrapper.cs
- TypeUnloadedException.cs
- MetadataPropertyvalue.cs
- CanonicalFontFamilyReference.cs
- PropertySegmentSerializer.cs
- ValueQuery.cs
- DbConnectionPoolGroup.cs
- SafeFileMapViewHandle.cs
- CalendarDataBindingHandler.cs
- unsafenativemethodsother.cs
- _ConnectStream.cs
- Activator.cs
- RequiredFieldValidator.cs
- VisualStyleTypesAndProperties.cs
- EUCJPEncoding.cs
- BrowserDefinition.cs
- Statements.cs
- RegexCharClass.cs
- OptimisticConcurrencyException.cs
- RijndaelManagedTransform.cs
- StrokeCollection2.cs
- PageRequestManager.cs
- AnnouncementDispatcherAsyncResult.cs
- Preprocessor.cs
- DataRowView.cs
- MetadataFile.cs
- AnnouncementEndpointElement.cs
- QuaternionAnimation.cs
- MULTI_QI.cs
- EventProviderWriter.cs
- Pen.cs
- ReaderWriterLock.cs
- TriggerAction.cs
- DirtyTextRange.cs
- CharEnumerator.cs
- InputLangChangeEvent.cs
- XmlSchema.cs
- WinEventWrap.cs
- ThicknessKeyFrameCollection.cs
- ListViewCancelEventArgs.cs
- UnsafeNativeMethods.cs
- WaitHandleCannotBeOpenedException.cs