Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / RootBuilder.cs / 2 / RootBuilder.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Implements the root builder
*
* Copyright (c) 1998 Microsoft Corporation
*/
namespace System.Web.UI {
using System.Runtime.InteropServices;
using System;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Web;
using System.Web.Util;
using System.Security.Permissions;
///
///
/// [To be supplied.]
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class RootBuilder : TemplateBuilder {
private MainTagNameToTypeMapper _typeMapper;
// Contains a mapping of all objects to their associated builders
private IDictionary _builtObjects;
public RootBuilder() {
}
///
/// [To be supplied.]
///
public RootBuilder(TemplateParser parser) {
}
public IDictionary BuiltObjects {
get {
// Store any objects created by this control builder
// so we can properly persist items
if (_builtObjects == null) {
_builtObjects = new Hashtable(ReferenceKeyComparer.Default);
}
return _builtObjects;
}
}
internal void SetTypeMapper(MainTagNameToTypeMapper typeMapper) {
_typeMapper = typeMapper;
}
///
/// [To be supplied.]
///
public override Type GetChildControlType(string tagName,
IDictionary attribs) {
// Is there a type to handle this control
Type type = _typeMapper.GetControlType(tagName, attribs,
true /*fAllowHtmlTags*/);
return type;
}
internal override void PrepareNoCompilePageSupport() {
base.PrepareNoCompilePageSupport();
// This is needed to break any connection with the TemplateParser, allowing it
// to be fully collected when the parsing is complete
_typeMapper = null;
}
private class ReferenceKeyComparer : IComparer, IEqualityComparer {
internal static readonly ReferenceKeyComparer Default = new ReferenceKeyComparer();
bool IEqualityComparer.Equals(object x, object y) {
return Object.ReferenceEquals(x, y);
}
int IEqualityComparer.GetHashCode(object obj) {
return obj.GetHashCode();
}
int IComparer.Compare(object x, object y) {
if (Object.ReferenceEquals(x, y)) {
return 0;
}
if (x == null) {
return -1;
}
if (y == null) {
return 1;
}
return 1;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rectangle.cs
- ProviderSettingsCollection.cs
- HttpRequest.cs
- GridViewPageEventArgs.cs
- xamlnodes.cs
- ChannelEndpointElementCollection.cs
- SystemParameters.cs
- PlainXmlSerializer.cs
- RecognizedPhrase.cs
- QuaternionConverter.cs
- BitmapEffectGeneralTransform.cs
- TableDetailsRow.cs
- PolyQuadraticBezierSegment.cs
- processwaithandle.cs
- BooleanSwitch.cs
- RightsManagementInformation.cs
- BitArray.cs
- SpellerInterop.cs
- NetDataContractSerializer.cs
- SByteStorage.cs
- PanelDesigner.cs
- ColorConvertedBitmapExtension.cs
- PreservationFileReader.cs
- PropertiesTab.cs
- RegexRunner.cs
- TreeNodeBinding.cs
- XmlAttribute.cs
- MachinePropertyVariants.cs
- ReadOnlyDictionary.cs
- TracePayload.cs
- UidManager.cs
- ThicknessAnimationBase.cs
- XmlILCommand.cs
- SettingsBindableAttribute.cs
- FamilyMap.cs
- QilReference.cs
- SweepDirectionValidation.cs
- __ConsoleStream.cs
- IdnMapping.cs
- DataGridViewCellMouseEventArgs.cs
- UrlParameterReader.cs
- ExtenderControl.cs
- HttpRequestBase.cs
- SapiRecoInterop.cs
- ControlDesigner.cs
- ToolStripDropDown.cs
- DataGridViewBindingCompleteEventArgs.cs
- QilBinary.cs
- ListenerConfig.cs
- AttributeProviderAttribute.cs
- NonDualMessageSecurityOverHttpElement.cs
- StickyNoteAnnotations.cs
- Byte.cs
- ContextMenuAutomationPeer.cs
- StateChangeEvent.cs
- XmlReflectionMember.cs
- WinEventTracker.cs
- StreamUpgradeBindingElement.cs
- ParamArrayAttribute.cs
- FragmentQueryProcessor.cs
- EffectiveValueEntry.cs
- BCryptNative.cs
- ChangeDirector.cs
- SevenBitStream.cs
- nulltextcontainer.cs
- AttachmentService.cs
- RtfToXamlReader.cs
- ProjectionRewriter.cs
- MultiAsyncResult.cs
- GroupDescription.cs
- WebUtil.cs
- SecurityRuntime.cs
- SchemaSetCompiler.cs
- ResizeGrip.cs
- DependencyObject.cs
- pingexception.cs
- PlatformCulture.cs
- BStrWrapper.cs
- ExpressionBindingCollection.cs
- SiteMapPath.cs
- SecurityDescriptor.cs
- RegexFCD.cs
- SQLMoneyStorage.cs
- TemplateKey.cs
- TransportElement.cs
- PaperSource.cs
- CngAlgorithm.cs
- PartialArray.cs
- CheckPair.cs
- QilInvokeLateBound.cs
- ProgressBarRenderer.cs
- TableTextElementCollectionInternal.cs
- documentsequencetextpointer.cs
- XmlSchemaImport.cs
- WebServiceData.cs
- SchemaSetCompiler.cs
- FunctionUpdateCommand.cs
- FastEncoder.cs
- JumpTask.cs
- WriterOutput.cs