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
- DictionaryEntry.cs
- FontSource.cs
- MD5CryptoServiceProvider.cs
- XmlDataSource.cs
- SystemIPv4InterfaceProperties.cs
- BoundColumn.cs
- WebEventTraceProvider.cs
- CustomTrackingQuery.cs
- ImageMetadata.cs
- WindowsSolidBrush.cs
- CopyEncoder.cs
- FaultDesigner.cs
- CachedPathData.cs
- WebServicesInteroperability.cs
- HttpWriter.cs
- NamedPipeProcessProtocolHandler.cs
- InlinedAggregationOperatorEnumerator.cs
- IsolatedStorageFilePermission.cs
- ObjectCache.cs
- HtmlFormWrapper.cs
- ManipulationStartedEventArgs.cs
- RequestQueue.cs
- BookmarkEventArgs.cs
- SmiSettersStream.cs
- CharacterHit.cs
- SqlDataSourceCache.cs
- SqlDataSourceView.cs
- PageVisual.cs
- NegatedCellConstant.cs
- serverconfig.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DirectoryObjectSecurity.cs
- AuthorizationContext.cs
- CallSiteHelpers.cs
- FieldAccessException.cs
- SchemaImporter.cs
- CodeGenerator.cs
- PlatformNotSupportedException.cs
- DictionarySectionHandler.cs
- ObjectResult.cs
- SynchronizedInputPattern.cs
- CngUIPolicy.cs
- BitmapImage.cs
- UshortList2.cs
- RelatedView.cs
- SupportingTokenChannel.cs
- CodeTypeMemberCollection.cs
- EditorZoneBase.cs
- KeyValuePair.cs
- StructuredType.cs
- HttpContext.cs
- Queue.cs
- SharedUtils.cs
- DbConnectionPoolIdentity.cs
- DispatcherSynchronizationContext.cs
- Rules.cs
- TableProviderWrapper.cs
- ImageDesigner.cs
- MessageBox.cs
- DragEvent.cs
- RenderData.cs
- HitTestParameters3D.cs
- GuidConverter.cs
- WSSecureConversationDec2005.cs
- DetailsViewInsertedEventArgs.cs
- RuntimeResourceSet.cs
- FixedSOMTableRow.cs
- BitmapEffectInput.cs
- SHA384.cs
- SchemaAttDef.cs
- DataPagerField.cs
- WCFModelStrings.Designer.cs
- BinaryMethodMessage.cs
- ObjectDataSourceView.cs
- SHA1Managed.cs
- SqlDataSourceEnumerator.cs
- WebPartManagerDesigner.cs
- ContentType.cs
- TemplatePropertyEntry.cs
- HostingPreferredMapPath.cs
- TagMapCollection.cs
- handlecollector.cs
- DataGridRelationshipRow.cs
- AttributeUsageAttribute.cs
- SQLConvert.cs
- PropertyRef.cs
- MarkupProperty.cs
- NullableLongSumAggregationOperator.cs
- TextAnchor.cs
- NativeMethods.cs
- Rect3D.cs
- NetworkInformationPermission.cs
- TableDetailsCollection.cs
- SqlDataSourceCommandEventArgs.cs
- ToolStripContentPanelRenderEventArgs.cs
- mediaclock.cs
- log.cs
- MemberMaps.cs
- XmlDocument.cs
- IssuedSecurityTokenProvider.cs