Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / namescope.cs / 1 / namescope.cs
/****************************************************************************\ * * File: NameScope.cs * * Used to store mapping information for names occuring * within the logical tree section. * * Copyright (C) 2005 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Windows; using System.Collections; using System.Collections.Specialized; using System.Globalization; using System.Windows.Markup; using System.ComponentModel; using MS.Internal; namespace System.Windows { ////// Used to store mapping information for names occuring /// within the logical tree section. /// public class NameScope : INameScope { #region INameScope ////// Register Name-Object Map /// /// name to be registered /// object mapped to name public void RegisterName(string name, object scopedElement) { if (name == null) throw new ArgumentNullException("name"); if (scopedElement == null) throw new ArgumentNullException("scopedElement"); if (name == String.Empty) throw new ArgumentException(SR.Get(SRID.NameScopeNameNotEmptyString)); if (!NameValidationHelper.IsValidIdentifierName(name)) { throw new ArgumentException(SR.Get(SRID.NameScopeInvalidIdentifierName, name)); } if (_nameMap == null) { _nameMap = new HybridDictionary(); _nameMap[name] = scopedElement; } else { object nameContext = _nameMap[name]; // first time adding the Name, set it if (nameContext == null) { _nameMap[name] = scopedElement; } else if (scopedElement != nameContext) { throw new ArgumentException(SR.Get(SRID.NameScopeDuplicateNamesNotAllowed, name)); } } if( TraceNameScope.IsEnabled ) { TraceNameScope.TraceActivityItem( TraceNameScope.RegisterName, this, name, scopedElement ); } } ////// Unregister Name-Object Map /// /// name to be registered public void UnregisterName(string name) { if (name == null) throw new ArgumentNullException("name"); if (name == String.Empty) throw new ArgumentException(SR.Get(SRID.NameScopeNameNotEmptyString)); if (_nameMap != null && _nameMap[name] != null) { _nameMap.Remove(name); } else { throw new ArgumentException(SR.Get(SRID.NameScopeNameNotFound, name)); } if( TraceNameScope.IsEnabled ) { TraceNameScope.TraceActivityItem( TraceNameScope.UnregisterName, this, name ); } } ////// Find - Find the corresponding object given a Name /// /// Name for which context needs to be retrieved ///corresponding Context if found, else null public object FindName(string name) { if (_nameMap == null || name == null || name == String.Empty) return null; return _nameMap[name]; } #endregion INameScope #region InternalMethods internal static INameScope NameScopeFromObject(object obj) { INameScope nameScope = obj as INameScope; if (nameScope == null) { DependencyObject objAsDO = obj as DependencyObject; if (objAsDO != null) { nameScope = GetNameScope(objAsDO); } } return nameScope; } #endregion InternalMethods #region DependencyProperties ////// NameScope property. This is an attached property. /// This property allows the dynamic attachment of NameScopes /// public static readonly DependencyProperty NameScopeProperty = DependencyProperty.RegisterAttached( "NameScope", typeof(INameScope), typeof(NameScope)); ////// Helper for setting NameScope property on a DependencyObject. /// /// Dependency Object to set NameScope property on. /// NameScope property value. public static void SetNameScope(DependencyObject dependencyObject, INameScope value) { if (dependencyObject == null) { throw new ArgumentNullException("dependencyObject"); } dependencyObject.SetValue(NameScopeProperty, value); } ////// Helper for reading NameScope property from a DependencyObject. /// /// DependencyObject to read NameScope property from. ///NameScope property value. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public static INameScope GetNameScope(DependencyObject dependencyObject) { if (dependencyObject == null) { throw new ArgumentNullException("dependencyObject"); } return ((INameScope)dependencyObject.GetValue(NameScopeProperty)); } #endregion DependencyProperties #region Data // This is a HybridDictionary of Name-Object maps private HybridDictionary _nameMap; #endregion Data } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: NameScope.cs * * Used to store mapping information for names occuring * within the logical tree section. * * Copyright (C) 2005 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.Windows; using System.Collections; using System.Collections.Specialized; using System.Globalization; using System.Windows.Markup; using System.ComponentModel; using MS.Internal; namespace System.Windows { ////// Used to store mapping information for names occuring /// within the logical tree section. /// public class NameScope : INameScope { #region INameScope ////// Register Name-Object Map /// /// name to be registered /// object mapped to name public void RegisterName(string name, object scopedElement) { if (name == null) throw new ArgumentNullException("name"); if (scopedElement == null) throw new ArgumentNullException("scopedElement"); if (name == String.Empty) throw new ArgumentException(SR.Get(SRID.NameScopeNameNotEmptyString)); if (!NameValidationHelper.IsValidIdentifierName(name)) { throw new ArgumentException(SR.Get(SRID.NameScopeInvalidIdentifierName, name)); } if (_nameMap == null) { _nameMap = new HybridDictionary(); _nameMap[name] = scopedElement; } else { object nameContext = _nameMap[name]; // first time adding the Name, set it if (nameContext == null) { _nameMap[name] = scopedElement; } else if (scopedElement != nameContext) { throw new ArgumentException(SR.Get(SRID.NameScopeDuplicateNamesNotAllowed, name)); } } if( TraceNameScope.IsEnabled ) { TraceNameScope.TraceActivityItem( TraceNameScope.RegisterName, this, name, scopedElement ); } } ////// Unregister Name-Object Map /// /// name to be registered public void UnregisterName(string name) { if (name == null) throw new ArgumentNullException("name"); if (name == String.Empty) throw new ArgumentException(SR.Get(SRID.NameScopeNameNotEmptyString)); if (_nameMap != null && _nameMap[name] != null) { _nameMap.Remove(name); } else { throw new ArgumentException(SR.Get(SRID.NameScopeNameNotFound, name)); } if( TraceNameScope.IsEnabled ) { TraceNameScope.TraceActivityItem( TraceNameScope.UnregisterName, this, name ); } } ////// Find - Find the corresponding object given a Name /// /// Name for which context needs to be retrieved ///corresponding Context if found, else null public object FindName(string name) { if (_nameMap == null || name == null || name == String.Empty) return null; return _nameMap[name]; } #endregion INameScope #region InternalMethods internal static INameScope NameScopeFromObject(object obj) { INameScope nameScope = obj as INameScope; if (nameScope == null) { DependencyObject objAsDO = obj as DependencyObject; if (objAsDO != null) { nameScope = GetNameScope(objAsDO); } } return nameScope; } #endregion InternalMethods #region DependencyProperties ////// NameScope property. This is an attached property. /// This property allows the dynamic attachment of NameScopes /// public static readonly DependencyProperty NameScopeProperty = DependencyProperty.RegisterAttached( "NameScope", typeof(INameScope), typeof(NameScope)); ////// Helper for setting NameScope property on a DependencyObject. /// /// Dependency Object to set NameScope property on. /// NameScope property value. public static void SetNameScope(DependencyObject dependencyObject, INameScope value) { if (dependencyObject == null) { throw new ArgumentNullException("dependencyObject"); } dependencyObject.SetValue(NameScopeProperty, value); } ////// Helper for reading NameScope property from a DependencyObject. /// /// DependencyObject to read NameScope property from. ///NameScope property value. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public static INameScope GetNameScope(DependencyObject dependencyObject) { if (dependencyObject == null) { throw new ArgumentNullException("dependencyObject"); } return ((INameScope)dependencyObject.GetValue(NameScopeProperty)); } #endregion DependencyProperties #region Data // This is a HybridDictionary of Name-Object maps private HybridDictionary _nameMap; #endregion Data } } // 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
- OdbcDataReader.cs
- XmlSchemaSequence.cs
- CustomErrorsSectionWrapper.cs
- Tag.cs
- DebugHandleTracker.cs
- SqlDataSourceStatusEventArgs.cs
- CodeFieldReferenceExpression.cs
- ControlPersister.cs
- ModuleBuilder.cs
- DynamicQueryableWrapper.cs
- PreviewPrintController.cs
- HierarchicalDataSourceControl.cs
- SqlUnionizer.cs
- DisplayInformation.cs
- BasicExpressionVisitor.cs
- StrokeCollection.cs
- ColumnHeader.cs
- AtomParser.cs
- ScriptControl.cs
- OperationDescription.cs
- ToolStripLocationCancelEventArgs.cs
- dataSvcMapFileLoader.cs
- validationstate.cs
- Typography.cs
- BookmarkInfo.cs
- XmlNodeComparer.cs
- MenuStrip.cs
- StrongName.cs
- DesignerWithHeader.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- TemplateField.cs
- XmlAnyAttributeAttribute.cs
- SubpageParagraph.cs
- HttpResponseHeader.cs
- EmptyEnumerator.cs
- LayoutExceptionEventArgs.cs
- AsymmetricSignatureFormatter.cs
- InstallerTypeAttribute.cs
- TimeSpanStorage.cs
- SqlRowUpdatingEvent.cs
- RightNameExpirationInfoPair.cs
- X500Name.cs
- DrawTreeNodeEventArgs.cs
- RawKeyboardInputReport.cs
- ElementAtQueryOperator.cs
- XmlIncludeAttribute.cs
- TypographyProperties.cs
- RequestChannelBinder.cs
- SqlDelegatedTransaction.cs
- WindowsEditBox.cs
- DataGridViewButtonCell.cs
- ParamArrayAttribute.cs
- MobileControl.cs
- FileDataSource.cs
- CallSite.cs
- RelationshipManager.cs
- WorkItem.cs
- DiscoveryOperationContext.cs
- TrackingValidationObjectDictionary.cs
- _SpnDictionary.cs
- SQLChars.cs
- DataSetUtil.cs
- WpfXamlLoader.cs
- ClientScriptManager.cs
- WindowsFormsSynchronizationContext.cs
- ArgumentException.cs
- Int32RectConverter.cs
- ExtractedStateEntry.cs
- Debug.cs
- RepeaterCommandEventArgs.cs
- LinearKeyFrames.cs
- RefreshResponseInfo.cs
- ViewSimplifier.cs
- TextPointer.cs
- arc.cs
- IDataContractSurrogate.cs
- ListBox.cs
- Console.cs
- TextDataBindingHandler.cs
- RegionData.cs
- CatalogZoneBase.cs
- ResourceProperty.cs
- TextBreakpoint.cs
- AdPostCacheSubstitution.cs
- Context.cs
- ScriptControl.cs
- ImageMapEventArgs.cs
- Point3DCollectionConverter.cs
- TextRunCache.cs
- ColorAnimationUsingKeyFrames.cs
- ObfuscationAttribute.cs
- Vector3DCollection.cs
- ConnectionManagementElementCollection.cs
- ResetableIterator.cs
- BasePattern.cs
- LazyTextWriterCreator.cs
- TypeProvider.cs
- DrawingContextWalker.cs
- MergeFilterQuery.cs
- SelectionUIHandler.cs