Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / RootBuilder.cs / 1305376 / 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; ////// /// 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; } } ///[To be supplied.] ////// The method gets called when the CodeDom tree is fully built. The way it is used is by first overriding /// ProcessGeneratedCode to keep track of the CodeCompileUnit, and to then have the ability to modify /// the CodeCompileUnit in this method /// protected internal virtual void OnCodeGenerationComplete() { } internal void SetTypeMapper(MainTagNameToTypeMapper typeMapper) { _typeMapper = typeMapper; } ////// 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. //------------------------------------------------------------------------------ //[To be supplied.] ///// 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; ////// /// 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; } } ///[To be supplied.] ////// The method gets called when the CodeDom tree is fully built. The way it is used is by first overriding /// ProcessGeneratedCode to keep track of the CodeCompileUnit, and to then have the ability to modify /// the CodeCompileUnit in this method /// protected internal virtual void OnCodeGenerationComplete() { } internal void SetTypeMapper(MainTagNameToTypeMapper typeMapper) { _typeMapper = typeMapper; } ////// 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.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SplitterPanel.cs
- DeclarativeCatalogPart.cs
- AssemblyInfo.cs
- TypeListConverter.cs
- UIElement3D.cs
- TextElementAutomationPeer.cs
- XmlDataSource.cs
- SiteMapHierarchicalDataSourceView.cs
- IdleTimeoutMonitor.cs
- MatrixAnimationUsingPath.cs
- BamlResourceContent.cs
- SystemException.cs
- CompositeScriptReferenceEventArgs.cs
- Aes.cs
- HuffModule.cs
- HTTPNotFoundHandler.cs
- TextOutput.cs
- RecognitionEventArgs.cs
- HtmlTableCellCollection.cs
- ParameterReplacerVisitor.cs
- AuthenticationManager.cs
- ModelServiceImpl.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- FixUpCollection.cs
- PathStreamGeometryContext.cs
- basenumberconverter.cs
- Blend.cs
- CustomAttribute.cs
- _Events.cs
- _SslSessionsCache.cs
- WorkflowInstanceTerminatedRecord.cs
- Boolean.cs
- WindowsEditBox.cs
- DbMetaDataFactory.cs
- CodePropertyReferenceExpression.cs
- NameSpaceExtractor.cs
- ComponentManagerBroker.cs
- DefaultAssemblyResolver.cs
- HashUtility.cs
- PropertyDescriptorGridEntry.cs
- TimeSpanStorage.cs
- ITreeGenerator.cs
- Utils.cs
- HttpListenerTimeoutManager.cs
- SafeEventLogWriteHandle.cs
- baseaxisquery.cs
- NavigationCommands.cs
- SemanticValue.cs
- ProjectionPathBuilder.cs
- SharedConnectionWorkflowTransactionService.cs
- DependencyProperty.cs
- BevelBitmapEffect.cs
- webeventbuffer.cs
- ToolBarPanel.cs
- TextTreeUndoUnit.cs
- SchemaElementLookUpTableEnumerator.cs
- DesignerHierarchicalDataSourceView.cs
- CFStream.cs
- SmiGettersStream.cs
- ListDataBindEventArgs.cs
- IndexOutOfRangeException.cs
- BindingCollection.cs
- ThemeInfoAttribute.cs
- StaticExtension.cs
- RestHandlerFactory.cs
- Mappings.cs
- XmlILStorageConverter.cs
- ZoneButton.cs
- SessionStateModule.cs
- ToolStripDropDownItem.cs
- Select.cs
- SystemWebExtensionsSectionGroup.cs
- RepeaterCommandEventArgs.cs
- WeakReadOnlyCollection.cs
- KeyedHashAlgorithm.cs
- HttpFileCollectionBase.cs
- FontNamesConverter.cs
- TableHeaderCell.cs
- HostProtectionException.cs
- ContextConfiguration.cs
- CharKeyFrameCollection.cs
- NavigationProgressEventArgs.cs
- WebProxyScriptElement.cs
- CngKey.cs
- SafeThreadHandle.cs
- SplayTreeNode.cs
- _LocalDataStoreMgr.cs
- SessionEndingEventArgs.cs
- IPPacketInformation.cs
- StrongNameHelpers.cs
- TemplatedControlDesigner.cs
- MultiSelectRootGridEntry.cs
- TemplateFactory.cs
- TextRangeProviderWrapper.cs
- SafeArrayRankMismatchException.cs
- EnumDataContract.cs
- Constraint.cs
- RewritingValidator.cs
- DataGridViewColumnEventArgs.cs
- webbrowsersite.cs