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
- OperationAbortedException.cs
- Or.cs
- StrongNameKeyPair.cs
- DesignTimeHTMLTextWriter.cs
- RowVisual.cs
- StylusPointCollection.cs
- DirectoryObjectSecurity.cs
- ShutDownListener.cs
- NotSupportedException.cs
- XPathScanner.cs
- DetailsViewUpdateEventArgs.cs
- UIntPtr.cs
- WebPartExportVerb.cs
- DesignerAutoFormatStyle.cs
- VideoDrawing.cs
- NativeMethodsCLR.cs
- SettingsPropertyValue.cs
- QueryOptionExpression.cs
- ToolBar.cs
- QueryResponse.cs
- FileChangesMonitor.cs
- _NegoStream.cs
- ReferentialConstraint.cs
- XmlAnyElementAttributes.cs
- WebZone.cs
- SystemResourceHost.cs
- GrowingArray.cs
- InputLanguageSource.cs
- CaseInsensitiveHashCodeProvider.cs
- XmlValidatingReader.cs
- XPathNavigatorKeyComparer.cs
- FileNotFoundException.cs
- _Rfc2616CacheValidators.cs
- WindowsListViewSubItem.cs
- ToolStripButton.cs
- DiscoveryOperationContextExtension.cs
- AspNetSynchronizationContext.cs
- FixedPosition.cs
- ToolStripItemRenderEventArgs.cs
- ItemDragEvent.cs
- PropertyDescriptorGridEntry.cs
- cookie.cs
- RawMouseInputReport.cs
- DataListItemCollection.cs
- DetailsViewInsertEventArgs.cs
- SplineQuaternionKeyFrame.cs
- ReferenceConverter.cs
- ImageConverter.cs
- Preprocessor.cs
- CodeNamespaceCollection.cs
- DictionaryContent.cs
- ActivationArguments.cs
- XmlNodeWriter.cs
- ClientUrlResolverWrapper.cs
- FieldBuilder.cs
- DataGridRelationshipRow.cs
- QueuePathEditor.cs
- SQLDecimalStorage.cs
- XmlHierarchicalEnumerable.cs
- ObjectKeyFrameCollection.cs
- Handle.cs
- UnhandledExceptionEventArgs.cs
- DataRelation.cs
- TransformedBitmap.cs
- FileDialogCustomPlace.cs
- ToolStripLocationCancelEventArgs.cs
- WmlImageAdapter.cs
- ZipIOCentralDirectoryFileHeader.cs
- SqlCaseSimplifier.cs
- SmtpNtlmAuthenticationModule.cs
- TextEffect.cs
- SimpleRecyclingCache.cs
- FormCollection.cs
- StrokeNodeOperations.cs
- QuaternionRotation3D.cs
- DataGridRowHeaderAutomationPeer.cs
- RSAOAEPKeyExchangeFormatter.cs
- MissingManifestResourceException.cs
- DataControlField.cs
- FormsAuthenticationCredentials.cs
- _SecureChannel.cs
- QilInvokeEarlyBound.cs
- XmlSchemaComplexContentExtension.cs
- HttpCapabilitiesEvaluator.cs
- WebPartActionVerb.cs
- Maps.cs
- BoundField.cs
- CodeNamespaceCollection.cs
- ACL.cs
- ItemsControlAutomationPeer.cs
- ITreeGenerator.cs
- AdornedElementPlaceholder.cs
- InvalidContentTypeException.cs
- DbModificationCommandTree.cs
- AbstractSvcMapFileLoader.cs
- CancelEventArgs.cs
- MediaElementAutomationPeer.cs
- LayoutDump.cs
- ServiceChannelManager.cs
- Vars.cs