Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Markup / ReaderContextStackData.cs / 1 / ReaderContextStackData.cs
/****************************************************************************\
*
* File: ReaderContextStackData.cs
*
* Copyright (C) 2003 by Microsoft Corporation. All rights reserved.
*
\***************************************************************************/
using System;
using System.Collections;
using System.Reflection;
using System.Diagnostics;
namespace System.Windows.Markup
{
// Data maintained on the reader's context stack. The root of the tree is at the bottom
// of the stack.
internal class ReaderContextStackData
{
//
// NOTE: If you add a field here, be sure to update ClearData
//
ReaderFlags _contextFlags;
object _contextData;
object _contextKey;
string _uid;
string _name;
object _contentProperty;
Type _expectedType;
short _expectedTypeId;
bool _createUsingTypeConverter;
//
// NOTE: If you add a field here, be sure to update ClearData
//
// Returns just the part of the flags field corresponding to the context type
internal ReaderFlags ContextType
{
get { return (ReaderFlags)(_contextFlags & ReaderFlags.ContextTypeMask); }
}
// The data object for this point in the stack. Typically the element at
// this scoping level
internal object ObjectData
{
get { return _contextData; }
set { _contextData = value; }
}
// The key attribute defined for the current context, whose parent context is expected
// to be an IDictionary
internal object Key
{
get { return _contextKey; }
set { _contextKey = value; }
}
// The x:Uid of this object, if it has one and has been read yet.
internal string Uid
{
get { return _uid; }
set { _uid = value; }
}
// The x:Name (or Name) of this object, if it has one and has been read yet.
// Alternatively if this context object represents a property this member
// gives you the name of the property. This is used to find a fallback value
// for this property in the event of an exception during property parsing.
internal string ElementNameOrPropertyName
{
get { return _name; }
set { _name = value; }
}
internal object ContentProperty
{
get { return _contentProperty; }
set { _contentProperty = value; }
}
// If an object has not yet been created at this point, this is the type of
// element to created
internal Type ExpectedType
{
get { return _expectedType; }
set { _expectedType = value; }
}
// If an object has not yet been created at this point, this is the Baml type id
// of the element. This is used for faster creation of known types.
internal short ExpectedTypeId
{
get { return _expectedTypeId; }
set { _expectedTypeId = value; }
}
// This object is expected to be created using a TypeConverter. If this
// is true, the following are also expected to be true:
// -ObjectData is null
// -ExpectedType is non-null
// -ExpectedTypeId is non-null
internal bool CreateUsingTypeConverter
{
get { return _createUsingTypeConverter; }
set { _createUsingTypeConverter = value; }
}
// Context identifying what this reader stack item represents
internal ReaderFlags ContextFlags
{
get { return _contextFlags; }
set { _contextFlags = value; }
}
// True if this element has not yet been added to the tree, but needs to be.
internal bool NeedToAddToTree
{
get { return CheckFlag(ReaderFlags.NeedToAddToTree); }
}
// simple helper method to remove the NeedToAddToTree flag and add the AddedToTree flag
internal void MarkAddedToTree()
{
ContextFlags = ((ContextFlags | ReaderFlags.AddedToTree) & ~ReaderFlags.NeedToAddToTree);
}
// simple helper method that returns true if the context contains the given flag or flags.
// If multiple flags are passed in, the context must contain all the flags.
internal bool CheckFlag(ReaderFlags flag)
{
return (ContextFlags & flag) == flag;
}
// simple helper method adds the flag to the context
internal void SetFlag(ReaderFlags flag)
{
ContextFlags |= flag;
}
// simple helper method that removes the flag from the context
internal void ClearFlag(ReaderFlags flag)
{
ContextFlags &= ~flag;
}
// Helper to determine if this represents an object element.
internal bool IsObjectElement
{
get
{
return ContextType == ReaderFlags.DependencyObject
||
ContextType == ReaderFlags.ClrObject;
}
}
// Clear all the fields on this instance before it put into the factory cache
internal void ClearData()
{
_contextFlags = 0;
_contextData = null;
_contextKey = null;
_contentProperty = null;
_expectedType = null;
_expectedTypeId = 0;
_createUsingTypeConverter = false;
_uid = null;
_name = null;
}
}
}
// 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
- DataControlField.cs
- HttpDigestClientElement.cs
- webclient.cs
- CompatibleComparer.cs
- DoubleLink.cs
- TraceListener.cs
- InputLanguageManager.cs
- CheckBoxBaseAdapter.cs
- DispatchWrapper.cs
- GroupBoxRenderer.cs
- Logging.cs
- OptimalTextSource.cs
- HtmlElementEventArgs.cs
- UnaryNode.cs
- MailAddressParser.cs
- ClientConfigurationSystem.cs
- DataGridItemAutomationPeer.cs
- GestureRecognitionResult.cs
- XmlDownloadManager.cs
- Canvas.cs
- MimeFormatter.cs
- PartialClassGenerationTask.cs
- MulticastOption.cs
- IdentitySection.cs
- XmlEntity.cs
- GeometryGroup.cs
- UseManagedPresentationBindingElementImporter.cs
- OperandQuery.cs
- BmpBitmapEncoder.cs
- ConfigurationManagerHelper.cs
- ComponentChangedEvent.cs
- OverlappedAsyncResult.cs
- RunClient.cs
- SecurityTokenResolver.cs
- MinimizableAttributeTypeConverter.cs
- ChtmlCalendarAdapter.cs
- MethodBody.cs
- Globals.cs
- EmissiveMaterial.cs
- RefType.cs
- XhtmlTextWriter.cs
- XmlValueConverter.cs
- CreateUserWizard.cs
- FacetEnabledSchemaElement.cs
- Calendar.cs
- SerializationException.cs
- LinqDataSourceContextEventArgs.cs
- ProvidePropertyAttribute.cs
- FontWeightConverter.cs
- OracleConnectionStringBuilder.cs
- AcceleratedTokenAuthenticator.cs
- EncryptedPackage.cs
- Frame.cs
- LineInfo.cs
- CachedFontFamily.cs
- ProcessThread.cs
- ReadOnlyNameValueCollection.cs
- TextServicesLoader.cs
- SrgsGrammarCompiler.cs
- SelectionProviderWrapper.cs
- DriveInfo.cs
- ByteStreamMessage.cs
- PrePrepareMethodAttribute.cs
- HtmlElementEventArgs.cs
- TimerEventSubscriptionCollection.cs
- QuotedPrintableStream.cs
- SapiRecognizer.cs
- Baml6ConstructorInfo.cs
- TemplatedWizardStep.cs
- GetLedgerEntryForRecipientRequest.cs
- BaseDataList.cs
- OrderedDictionary.cs
- DataObjectCopyingEventArgs.cs
- WebDescriptionAttribute.cs
- SystemWebCachingSectionGroup.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- StringHandle.cs
- uribuilder.cs
- MethodCallTranslator.cs
- OleDbWrapper.cs
- UserValidatedEventArgs.cs
- SecurityContext.cs
- MenuItemCollectionEditor.cs
- ClientRolePrincipal.cs
- HMAC.cs
- IteratorFilter.cs
- FormViewInsertEventArgs.cs
- BinaryObjectWriter.cs
- KeyValuePairs.cs
- DataControlReference.cs
- SkipQueryOptionExpression.cs
- CallInfo.cs
- AppliedDeviceFiltersEditor.cs
- Int32Rect.cs
- HttpEncoder.cs
- DesignColumnCollection.cs
- EventHandlerList.cs
- OperationPerformanceCounters.cs
- SystemDiagnosticsSection.cs
- LogLogRecordHeader.cs