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
- AppSettingsReader.cs
- GridViewCellAutomationPeer.cs
- MetadataArtifactLoaderCompositeFile.cs
- DesignColumnCollection.cs
- DBAsyncResult.cs
- MemberNameValidator.cs
- EncodingDataItem.cs
- CodeCommentStatement.cs
- HttpContext.cs
- URL.cs
- AdditionalEntityFunctions.cs
- EntityDataSourceUtil.cs
- BufferedGraphicsManager.cs
- AssociationTypeEmitter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ThreadPool.cs
- RectIndependentAnimationStorage.cs
- IdnElement.cs
- smtppermission.cs
- SerializationInfo.cs
- IODescriptionAttribute.cs
- WCFServiceClientProxyGenerator.cs
- PolyQuadraticBezierSegment.cs
- SqlStream.cs
- CustomWebEventKey.cs
- BrushValueSerializer.cs
- ColorInterpolationModeValidation.cs
- DataControlReferenceCollection.cs
- OdbcUtils.cs
- SafeNativeMethods.cs
- DataGridCommandEventArgs.cs
- RenderContext.cs
- XPathNavigator.cs
- ExternalCalls.cs
- UnauthorizedWebPart.cs
- DatatypeImplementation.cs
- WebPartsPersonalizationAuthorization.cs
- CodeNamespaceCollection.cs
- CheckBox.cs
- MediaPlayer.cs
- RectValueSerializer.cs
- DSASignatureFormatter.cs
- ClassHandlersStore.cs
- RegistryDataKey.cs
- OleDbPermission.cs
- DesignerRegionCollection.cs
- TableRowGroup.cs
- UpnEndpointIdentityExtension.cs
- QueryTaskGroupState.cs
- Terminate.cs
- ValidationResult.cs
- ChangePasswordAutoFormat.cs
- AvtEvent.cs
- StrongNameIdentityPermission.cs
- DataServiceContext.cs
- Accessible.cs
- ExeConfigurationFileMap.cs
- QilValidationVisitor.cs
- MenuItemBinding.cs
- EntityCommandExecutionException.cs
- PrivilegedConfigurationManager.cs
- Base64Encoder.cs
- AuthorizationRuleCollection.cs
- UnicodeEncoding.cs
- SafeMILHandle.cs
- DataGridViewTopRowAccessibleObject.cs
- ServiceCredentialsSecurityTokenManager.cs
- ColorMap.cs
- Subtree.cs
- Container.cs
- ContextMenuAutomationPeer.cs
- Range.cs
- CalendarDesigner.cs
- SoapEnumAttribute.cs
- ReadOnlyCollectionBuilder.cs
- Geometry.cs
- FormViewUpdateEventArgs.cs
- Completion.cs
- ChannelSinkStacks.cs
- FormatConvertedBitmap.cs
- Color.cs
- SystemIcmpV4Statistics.cs
- ObsoleteAttribute.cs
- BitmapEffectDrawing.cs
- SizeValueSerializer.cs
- ScrollBar.cs
- DataControlLinkButton.cs
- HttpCachePolicy.cs
- DynamicRenderer.cs
- SqlConnectionPoolGroupProviderInfo.cs
- ElementProxy.cs
- AppDomainFactory.cs
- FileDialog_Vista_Interop.cs
- WebColorConverter.cs
- RowToFieldTransformer.cs
- StatusStrip.cs
- DataGridViewSelectedRowCollection.cs
- DataTemplateKey.cs
- OdbcInfoMessageEvent.cs
- ContentOperations.cs