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
- Simplifier.cs
- MachinePropertyVariants.cs
- JavaScriptSerializer.cs
- streamingZipPartStream.cs
- GenericUriParser.cs
- HyperLinkStyle.cs
- ToolboxCategoryItems.cs
- MethodBuilderInstantiation.cs
- UrlMappingsModule.cs
- CodeGeneratorOptions.cs
- RadioButtonRenderer.cs
- Pair.cs
- OutputCacheSettings.cs
- SchemaImporterExtensionsSection.cs
- CanExecuteRoutedEventArgs.cs
- XamlLoadErrorInfo.cs
- ToolStripContentPanel.cs
- ConditionalExpression.cs
- handlecollector.cs
- ExtensionSimplifierMarkupObject.cs
- TreeNodeMouseHoverEvent.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- LayoutEditorPart.cs
- ProfileElement.cs
- RadioButtonStandardAdapter.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TransformedBitmap.cs
- StrongNamePublicKeyBlob.cs
- Utils.cs
- OleDbFactory.cs
- WorkflowDesignerMessageFilter.cs
- TypefaceMap.cs
- LabelEditEvent.cs
- HostVisual.cs
- XmlFormatWriterGenerator.cs
- AsyncPostBackErrorEventArgs.cs
- HandleCollector.cs
- XmlSchemaAny.cs
- DataRelationCollection.cs
- SHA256.cs
- BuildResult.cs
- lengthconverter.cs
- RelationshipConstraintValidator.cs
- SatelliteContractVersionAttribute.cs
- WebPartDisplayModeCollection.cs
- SystemTcpStatistics.cs
- SemanticValue.cs
- HttpListenerElement.cs
- ActiveXSite.cs
- TileModeValidation.cs
- XsdBuildProvider.cs
- BinaryNode.cs
- HttpAsyncResult.cs
- JsonFormatWriterGenerator.cs
- HtmlEmptyTagControlBuilder.cs
- StylusPointProperty.cs
- TextPointer.cs
- DependencyPropertyConverter.cs
- TableColumn.cs
- ICspAsymmetricAlgorithm.cs
- GZipUtils.cs
- RangeValidator.cs
- CollectionChangedEventManager.cs
- AccessViolationException.cs
- WebScriptEndpointElement.cs
- DeviceContext.cs
- TextTabProperties.cs
- ResourceWriter.cs
- SecurityException.cs
- ScrollPatternIdentifiers.cs
- DynamicQueryableWrapper.cs
- ISAPIWorkerRequest.cs
- BindingMAnagerBase.cs
- AssemblyResourceLoader.cs
- ImageCodecInfoPrivate.cs
- Number.cs
- ContextMenuAutomationPeer.cs
- HttpProfileGroupBase.cs
- VolatileResourceManager.cs
- SplineKeyFrames.cs
- ThousandthOfEmRealPoints.cs
- PolicyStatement.cs
- SafeCertificateStore.cs
- CommonDialog.cs
- sqlpipe.cs
- TypeRestriction.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- HorizontalAlignConverter.cs
- ZipIORawDataFileBlock.cs
- BinaryParser.cs
- SizeF.cs
- FeatureAttribute.cs
- PeerNameRecordCollection.cs
- ViewStateException.cs
- Header.cs
- MaskDesignerDialog.cs
- SemanticAnalyzer.cs
- EmptyCollection.cs
- QueueProcessor.cs
- AppDomainShutdownMonitor.cs