Code:
/ FX-1434 / FX-1434 / 1.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
- SystemFonts.cs
- WebPartActionVerb.cs
- ScrollableControlDesigner.cs
- BrowsableAttribute.cs
- CodeDOMUtility.cs
- ServiceBusyException.cs
- ScrollBarAutomationPeer.cs
- Panel.cs
- OneOf.cs
- WindowsGraphics2.cs
- PointLightBase.cs
- TemplateField.cs
- WorkflowInstanceQuery.cs
- SyndicationDeserializer.cs
- ExpressionBuilderCollection.cs
- serverconfig.cs
- RotateTransform.cs
- ProjectionQueryOptionExpression.cs
- SendAgentStatusRequest.cs
- SchemaCollectionPreprocessor.cs
- EditorAttributeInfo.cs
- LinkTarget.cs
- TrustManagerMoreInformation.cs
- MaskDesignerDialog.cs
- NonSerializedAttribute.cs
- StringHandle.cs
- Hex.cs
- HtmlShim.cs
- DependencyPropertyHelper.cs
- AlphabeticalEnumConverter.cs
- WindowsIdentity.cs
- NoneExcludedImageIndexConverter.cs
- XamlNamespaceHelper.cs
- CellConstant.cs
- WindowInteropHelper.cs
- RequestCachePolicyConverter.cs
- WriteLine.cs
- MessageLoggingFilterTraceRecord.cs
- StatusBar.cs
- TypeSemantics.cs
- TextReader.cs
- HostProtectionException.cs
- ProfilePropertySettingsCollection.cs
- BitmapEffectInputConnector.cs
- IndexingContentUnit.cs
- DeferredReference.cs
- IPHostEntry.cs
- ObjectListGeneralPage.cs
- ScriptResourceAttribute.cs
- SecurityElement.cs
- JsonStringDataContract.cs
- DirectionalLight.cs
- SafeFileHandle.cs
- ApplicationManager.cs
- FrameworkPropertyMetadata.cs
- MultipleFilterMatchesException.cs
- WinEventQueueItem.cs
- JsonWriterDelegator.cs
- ClickablePoint.cs
- XmlDownloadManager.cs
- TemplateBuilder.cs
- AttachedPropertyBrowsableAttribute.cs
- BrowsableAttribute.cs
- Synchronization.cs
- Timer.cs
- ErrorFormatter.cs
- SyntaxCheck.cs
- InvalidAsynchronousStateException.cs
- ContainerAction.cs
- WindowsListViewItemStartMenu.cs
- DetailsViewInsertEventArgs.cs
- MenuEventArgs.cs
- ObjectTokenCategory.cs
- MouseEvent.cs
- ConnectionManagementElement.cs
- SelectorItemAutomationPeer.cs
- GeneralTransform2DTo3DTo2D.cs
- Metafile.cs
- EventProvider.cs
- TTSEvent.cs
- ShapingWorkspace.cs
- InvalidProgramException.cs
- ChannelManager.cs
- TreeNode.cs
- ListViewAutomationPeer.cs
- SqlMultiplexer.cs
- Process.cs
- CodeDelegateInvokeExpression.cs
- DbConnectionStringCommon.cs
- Int16AnimationBase.cs
- XmlSchemas.cs
- InvokeDelegate.cs
- ConstrainedDataObject.cs
- TextSerializer.cs
- VisualStyleElement.cs
- StopStoryboard.cs
- PenThread.cs
- _SslState.cs
- XmlLoader.cs
- BidOverLoads.cs