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
- SerTrace.cs
- KeyEvent.cs
- RecognizedAudio.cs
- SmtpReplyReader.cs
- GridViewHeaderRowPresenter.cs
- Size.cs
- x509store.cs
- ParseHttpDate.cs
- SoapIgnoreAttribute.cs
- KeyEvent.cs
- ControlDesignerState.cs
- PipeException.cs
- JsonSerializer.cs
- UInt32.cs
- SchemaHelper.cs
- DataGrid.cs
- AliasExpr.cs
- LineInfo.cs
- KnowledgeBase.cs
- SizeConverter.cs
- EntityDataSourceSelectingEventArgs.cs
- LexicalChunk.cs
- x509utils.cs
- BaseTemplateCodeDomTreeGenerator.cs
- LocalIdKeyIdentifierClause.cs
- XPathNodeIterator.cs
- LocalFileSettingsProvider.cs
- InputGestureCollection.cs
- AstTree.cs
- GrammarBuilderRuleRef.cs
- DbConnectionPoolGroup.cs
- WebPartPersonalization.cs
- ToolStripDropDownMenu.cs
- lengthconverter.cs
- DateTimeConverter.cs
- CompilerWrapper.cs
- DataBindEngine.cs
- DataColumnSelectionConverter.cs
- ToolStrip.cs
- ResourceReader.cs
- DataViewSettingCollection.cs
- ContextBase.cs
- streamingZipPartStream.cs
- DataGridHyperlinkColumn.cs
- TerminateDesigner.cs
- DispatcherSynchronizationContext.cs
- ConnectionsZoneAutoFormat.cs
- smtppermission.cs
- IfAction.cs
- BinaryObjectReader.cs
- SamlAuthenticationStatement.cs
- OpenFileDialog.cs
- TextServicesDisplayAttributePropertyRanges.cs
- BitHelper.cs
- ScrollEventArgs.cs
- ImportedNamespaceContextItem.cs
- ErrorRuntimeConfig.cs
- CommandLibraryHelper.cs
- ApplicationServiceManager.cs
- TextCompositionManager.cs
- X509SubjectKeyIdentifierClause.cs
- DataGridViewCellStateChangedEventArgs.cs
- RemotingException.cs
- ValidationErrorCollection.cs
- FontWeights.cs
- BaseCodeDomTreeGenerator.cs
- ClientOperationFormatterProvider.cs
- RequestCache.cs
- Adorner.cs
- _AcceptOverlappedAsyncResult.cs
- ResourceExpressionBuilder.cs
- ContainerUtilities.cs
- RectAnimationUsingKeyFrames.cs
- SqlUtils.cs
- ConstantCheck.cs
- Item.cs
- ConsumerConnectionPoint.cs
- AsymmetricSignatureFormatter.cs
- DataRelation.cs
- NumberFormatInfo.cs
- NavigationCommands.cs
- RelationshipSet.cs
- FunctionQuery.cs
- DesignerCommandSet.cs
- Table.cs
- PrimitiveCodeDomSerializer.cs
- DrawingCollection.cs
- BaseParaClient.cs
- XPathBuilder.cs
- BitmapSourceSafeMILHandle.cs
- EditorZone.cs
- DesignerCategoryAttribute.cs
- Rect.cs
- QualificationDataItem.cs
- InheritanceContextHelper.cs
- SocketElement.cs
- ClientRolePrincipal.cs
- PolyLineSegment.cs
- WindowsHyperlink.cs
- SafeNativeMethods.cs