Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- PageThemeParser.cs
- ManagementInstaller.cs
- ItemContainerGenerator.cs
- Material.cs
- BitmapDownload.cs
- COM2AboutBoxPropertyDescriptor.cs
- ProxyWebPartManagerDesigner.cs
- BatchWriter.cs
- NetworkStream.cs
- DomainUpDown.cs
- SystemColors.cs
- CompoundFileReference.cs
- ColumnMapProcessor.cs
- CreateUserWizardStep.cs
- ConnectionProviderAttribute.cs
- XmlMapping.cs
- PkcsMisc.cs
- BezierSegment.cs
- TdsValueSetter.cs
- SapiAttributeParser.cs
- SemanticKeyElement.cs
- DetailsViewUpdatedEventArgs.cs
- MethodToken.cs
- PublisherMembershipCondition.cs
- BCryptHashAlgorithm.cs
- TextTreeUndoUnit.cs
- TypeNameConverter.cs
- LambdaExpression.cs
- SafeArrayTypeMismatchException.cs
- ListParagraph.cs
- RotationValidation.cs
- DivideByZeroException.cs
- ReadWriteSpinLock.cs
- ActivityCodeDomReferenceService.cs
- XXXOnTypeBuilderInstantiation.cs
- HeaderedItemsControl.cs
- Select.cs
- C14NUtil.cs
- StandardOleMarshalObject.cs
- Animatable.cs
- FirstMatchCodeGroup.cs
- HwndSourceKeyboardInputSite.cs
- EvidenceTypeDescriptor.cs
- SafeThemeHandle.cs
- SharedDp.cs
- BulletChrome.cs
- MimeObjectFactory.cs
- _SSPIWrapper.cs
- EventData.cs
- ModelServiceImpl.cs
- HMAC.cs
- FrameworkElement.cs
- InvalidWMPVersionException.cs
- XmlSchemaSimpleType.cs
- Point3DCollection.cs
- GeneralTransform2DTo3D.cs
- ObjectDataSourceDisposingEventArgs.cs
- ContextMenu.cs
- WebBrowsableAttribute.cs
- SharedDp.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- FullTextLine.cs
- JsonStringDataContract.cs
- AssemblyAttributesGoHere.cs
- SingleAnimationUsingKeyFrames.cs
- InvokeMethod.cs
- TrackingMemoryStreamFactory.cs
- RelationshipEntry.cs
- ReaderWriterLockWrapper.cs
- DataViewManagerListItemTypeDescriptor.cs
- UIntPtr.cs
- ControlIdConverter.cs
- EdmRelationshipRoleAttribute.cs
- ApplicationProxyInternal.cs
- IdleTimeoutMonitor.cs
- EditorPartCollection.cs
- VideoDrawing.cs
- DeleteCardRequest.cs
- Thumb.cs
- SafeLibraryHandle.cs
- StrongName.cs
- CodeTypeReferenceExpression.cs
- ContentFilePart.cs
- ProxyRpc.cs
- DataGridViewAutoSizeModeEventArgs.cs
- FilteredDataSetHelper.cs
- WebHttpSecurityElement.cs
- SqlCachedBuffer.cs
- PopOutPanel.cs
- AttributeProviderAttribute.cs
- PKCS1MaskGenerationMethod.cs
- SemanticBasicElement.cs
- NetworkAddressChange.cs
- DefaultValueAttribute.cs
- WhereQueryOperator.cs
- TextInfo.cs
- ScrollableControl.cs
- LocatorBase.cs
- WorkflowService.cs
- ControlBuilder.cs