Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / ParserStack.cs / 1305600 / ParserStack.cs
/****************************************************************************\ * * File: ParserStack.cs * * Purpose: ParserStack...once was in XamlReaderHelper.cs * * History: * 11/21/08: [....] Moved from XamlReaderHelper.cs as we were replacing the parser. * * Copyright (C) 2008 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Xml; using System.Xml.Serialization; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Globalization; using MS.Utility; using System.Collections.Specialized; using Microsoft.Win32; using System.Runtime.InteropServices; using MS.Internal; using System.Windows.Markup; #if !PBTCOMPILER using System.Windows; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Shapes; #endif #if PBTCOMPILER namespace MS.Internal.Markup #else namespace System.Windows.Markup #endif { ////// Parser Context stack /// The built-in Stack class doesn't let you do things like look at nodes beyond the top of the stack... /// so we'll use this instead. Note that this is not a complete stack implementation -- if you try to /// convert to array or some such, you'll be missing a couple elements. But this is plenty for our purposes. /// Main goal is to track current/parent context with a minimum of overhead. /// This class is internal so it can be shared with the BamlRecordReader /// internal class ParserStack : ArrayList { ////// Creates a default ParserStack /// internal ParserStack() : base() { } ////// Creates a clone. /// private ParserStack(ICollection collection) : base(collection) { } #region StackOverrides public void Push(object o) { Add(o); } public object Pop() { object o = this[Count - 1]; RemoveAt(Count - 1); return o; } #if !PBTCOMPILER public object Peek() { // Die if peeking on empty stack return this[Count - 1]; } #endif public override object Clone() { return new ParserStack(this); } #endregion // StackOverrides #region Properties ////// Returns the Current Context on the stack /// internal object CurrentContext { get { return Count > 0 ? this[Count - 1] : null; } } ////// Returns the Parent of the Current Context /// internal object ParentContext { get { return Count > 1 ? this[Count - 2] : null; } } ////// Returns the GrandParent of the Current Context /// internal object GrandParentContext { get { return Count > 2 ? this[Count - 3] : null; } } #if !PBTCOMPILER ////// Returns the GreatGrandParent of the Current Context /// internal object GreatGrandParentContext { get { return Count > 3 ? this[Count - 4] : null; } } #endif #endregion // Properties } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScrollProperties.cs
- SchemaAttDef.cs
- SchemaTypeEmitter.cs
- SchemaImporterExtensionElementCollection.cs
- QueueProcessor.cs
- ProcessInputEventArgs.cs
- TreeViewDesigner.cs
- RectangleGeometry.cs
- WindowsFormsHelpers.cs
- Imaging.cs
- SubstitutionResponseElement.cs
- PerformanceCounterPermission.cs
- AssemblyEvidenceFactory.cs
- Size3DValueSerializer.cs
- UInt32Storage.cs
- SystemFonts.cs
- XPathItem.cs
- LogConverter.cs
- GPPOINTF.cs
- StreamUpgradeInitiator.cs
- PropertyGridView.cs
- PaintValueEventArgs.cs
- LocalValueEnumerator.cs
- FormsAuthenticationUserCollection.cs
- CharacterBufferReference.cs
- MobileControlBuilder.cs
- TypedReference.cs
- ByteConverter.cs
- SoapAttributeOverrides.cs
- Knowncolors.cs
- IPEndPoint.cs
- SessionPageStateSection.cs
- EntityContainerEntitySet.cs
- XPathException.cs
- MetadataArtifactLoaderCompositeResource.cs
- UserControlDocumentDesigner.cs
- OleDbConnection.cs
- CompoundFileReference.cs
- SafeCoTaskMem.cs
- ManipulationLogic.cs
- CompModSwitches.cs
- ColumnWidthChangingEvent.cs
- ConfigXmlComment.cs
- Model3DCollection.cs
- ResourceSetExpression.cs
- entityreference_tresulttype.cs
- PopupRootAutomationPeer.cs
- CanonicalFontFamilyReference.cs
- XPathNodeList.cs
- XPathArrayIterator.cs
- JoinElimination.cs
- BoundsDrawingContextWalker.cs
- WebPartDisplayModeCollection.cs
- TableCell.cs
- DbDataAdapter.cs
- ContentHostHelper.cs
- BehaviorService.cs
- X509Chain.cs
- SafeTimerHandle.cs
- RectangleHotSpot.cs
- InputScopeConverter.cs
- GridViewUpdateEventArgs.cs
- WindowsListViewItemCheckBox.cs
- BitmapEffectGroup.cs
- FlowStep.cs
- RepeaterItemEventArgs.cs
- GroupPartitionExpr.cs
- CacheManager.cs
- DbDataReader.cs
- Int32.cs
- PathTooLongException.cs
- ItemPager.cs
- Attributes.cs
- Semaphore.cs
- SerialPort.cs
- StyleHelper.cs
- FontDialog.cs
- NetworkCredential.cs
- MimeTypeAttribute.cs
- SecurityContextCookieSerializer.cs
- SymbolMethod.cs
- KeyGestureValueSerializer.cs
- HtmlDocument.cs
- BaseValidator.cs
- ProcessModuleCollection.cs
- DataGridTableCollection.cs
- RegexCharClass.cs
- ProtectedProviderSettings.cs
- GridProviderWrapper.cs
- SettingsAttributeDictionary.cs
- StandardTransformFactory.cs
- UpdateCommandGenerator.cs
- SessionSwitchEventArgs.cs
- MobileControlsSection.cs
- SynchronizationContext.cs
- DbReferenceCollection.cs
- Stack.cs
- ScriptIgnoreAttribute.cs
- DropTarget.cs
- GridView.cs