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
- UserControl.cs
- QueryOutputWriter.cs
- TypeSource.cs
- EventSinkActivityDesigner.cs
- SortableBindingList.cs
- VerificationAttribute.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- DataBindingValueUIHandler.cs
- HttpRawResponse.cs
- ChannelRequirements.cs
- RedirectionProxy.cs
- PhysicalFontFamily.cs
- QilSortKey.cs
- UIElement.cs
- SHA1Managed.cs
- PocoPropertyAccessorStrategy.cs
- Int16.cs
- RSAPKCS1SignatureDeformatter.cs
- CalloutQueueItem.cs
- ToolTipAutomationPeer.cs
- DbCommandTree.cs
- MessageDispatch.cs
- TriggerCollection.cs
- NativeMethods.cs
- ImportCatalogPart.cs
- DesignerTransaction.cs
- ImagingCache.cs
- AttributeSetAction.cs
- UpDownEvent.cs
- SQlBooleanStorage.cs
- TdsParser.cs
- SystemTcpConnection.cs
- DBSqlParser.cs
- TypePresenter.xaml.cs
- OrderedDictionary.cs
- DelegatingTypeDescriptionProvider.cs
- _IPv6Address.cs
- EntryWrittenEventArgs.cs
- DefaultBindingPropertyAttribute.cs
- BeginSelectCardRequest.cs
- ResourcesChangeInfo.cs
- EncoderParameter.cs
- CancellationToken.cs
- ManagementBaseObject.cs
- BitmapEffectGeneralTransform.cs
- TableProviderWrapper.cs
- EntityCommandDefinition.cs
- ConnectionProviderAttribute.cs
- FontFamily.cs
- FrameDimension.cs
- FrameworkTextComposition.cs
- GradientStop.cs
- PartitionResolver.cs
- TransportContext.cs
- DebugView.cs
- ChangeTracker.cs
- TransformCryptoHandle.cs
- VisualBasicHelper.cs
- DropShadowEffect.cs
- HTMLTagNameToTypeMapper.cs
- SmiTypedGetterSetter.cs
- PresentationTraceSources.cs
- ParserExtension.cs
- WebPartTransformer.cs
- WebMethodAttribute.cs
- KeyToListMap.cs
- ListMarkerSourceInfo.cs
- StatusBarAutomationPeer.cs
- DateTimeParse.cs
- PerformanceCountersElement.cs
- InkCanvasAutomationPeer.cs
- Expr.cs
- XmlSchemaAll.cs
- FrameworkContextData.cs
- COM2ColorConverter.cs
- CompositeActivityValidator.cs
- ContainerControl.cs
- EncoderParameter.cs
- XPathMessageFilter.cs
- ToolStripStatusLabel.cs
- DataSet.cs
- SeekStoryboard.cs
- SearchForVirtualItemEventArgs.cs
- HandlerBase.cs
- GeneralTransform.cs
- CachedBitmap.cs
- DataGridViewAccessibleObject.cs
- PropertyStore.cs
- BatchParser.cs
- AbstractExpressions.cs
- TextAdaptor.cs
- DictionaryManager.cs
- CodeTypeReference.cs
- TabControl.cs
- CompositionAdorner.cs
- HighlightVisual.cs
- WorkflowWebHostingModule.cs
- BevelBitmapEffect.cs
- WebConfigurationHost.cs
- Win32Native.cs