Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
// 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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IsolationInterop.cs
- ISAPIApplicationHost.cs
- ListDesigner.cs
- CachedFontFace.cs
- HandleDictionary.cs
- BinaryOperationBinder.cs
- Unit.cs
- OperationPickerDialog.cs
- _NetRes.cs
- CachedBitmap.cs
- IntegerValidatorAttribute.cs
- WindowsRichEditRange.cs
- StringReader.cs
- ProxySimple.cs
- NotImplementedException.cs
- ImmutableCommunicationTimeouts.cs
- CallbackBehaviorAttribute.cs
- TimeSpanValidator.cs
- AspCompat.cs
- ValueConversionAttribute.cs
- IProvider.cs
- PersonalizationDictionary.cs
- OracleRowUpdatingEventArgs.cs
- ByteKeyFrameCollection.cs
- InvalidComObjectException.cs
- CngKeyBlobFormat.cs
- diagnosticsswitches.cs
- RelOps.cs
- LogRecordSequence.cs
- Interlocked.cs
- PointAnimation.cs
- DataServiceOperationContext.cs
- AdapterUtil.cs
- ListItemCollection.cs
- VoiceObjectToken.cs
- SAPIEngineTypes.cs
- UserControl.cs
- DoWorkEventArgs.cs
- XNodeNavigator.cs
- ServicesSection.cs
- COM2PropertyBuilderUITypeEditor.cs
- CustomLineCap.cs
- Subtree.cs
- ZipIOLocalFileBlock.cs
- RectKeyFrameCollection.cs
- ToolboxItemCollection.cs
- CodeCatchClauseCollection.cs
- RootAction.cs
- IntSecurity.cs
- ErrorProvider.cs
- Constants.cs
- DoubleLinkListEnumerator.cs
- ByeMessage11.cs
- EpmTargetTree.cs
- RTTypeWrapper.cs
- URI.cs
- HwndSourceParameters.cs
- Symbol.cs
- TdsParserSafeHandles.cs
- AuthStoreRoleProvider.cs
- StylusPoint.cs
- AttributeUsageAttribute.cs
- XPathSingletonIterator.cs
- Visitors.cs
- UnsupportedPolicyOptionsException.cs
- ComplexLine.cs
- Contracts.cs
- XmlSchemaSimpleContentExtension.cs
- DockingAttribute.cs
- ThreadExceptionEvent.cs
- complextypematerializer.cs
- DiscardableAttribute.cs
- CharEntityEncoderFallback.cs
- XmlWrappingReader.cs
- HTMLTextWriter.cs
- Type.cs
- PermissionRequestEvidence.cs
- XmlSchemaType.cs
- CodeAccessSecurityEngine.cs
- SimplePropertyEntry.cs
- UnmanagedMarshal.cs
- _TransmitFileOverlappedAsyncResult.cs
- Emitter.cs
- HeaderCollection.cs
- OleDbFactory.cs
- FontCacheUtil.cs
- ToolboxItem.cs
- COM2Enum.cs
- MemberInfoSerializationHolder.cs
- BitmapPalettes.cs
- DropDownButton.cs
- GroupLabel.cs
- ExpressionBuilder.cs
- SQLDecimalStorage.cs
- SemanticBasicElement.cs
- HtmlGenericControl.cs
- NegotiateStream.cs
- ConfigurationLocation.cs
- PeerApplication.cs
- ProfilePropertySettingsCollection.cs