Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Serialization / NameTable.cs / 1305376 / NameTable.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.Serialization {
using System.Collections;
internal class NameKey {
string ns;
string name;
internal NameKey(string name, string ns) {
this.name = name;
this.ns = ns;
}
public override bool Equals(object other) {
if (!(other is NameKey)) return false;
NameKey key = (NameKey)other;
return name == key.name && ns == key.ns;
}
public override int GetHashCode() {
return (ns == null ? "".GetHashCode() : ns.GetHashCode()) ^ (name == null ? 0 : name.GetHashCode());
}
}
internal interface INameScope {
object this[string name, string ns] {get; set;}
}
internal class NameTable : INameScope {
Hashtable table = new Hashtable();
internal void Add(XmlQualifiedName qname, object value) {
Add(qname.Name, qname.Namespace, value);
}
internal void Add(string name, string ns, object value) {
NameKey key = new NameKey(name, ns);
table.Add(key, value);
}
internal object this[XmlQualifiedName qname] {
get {
return table[new NameKey(qname.Name, qname.Namespace)];
}
set {
table[new NameKey(qname.Name, qname.Namespace)] = value;
}
}
internal object this[string name, string ns] {
get {
return table[new NameKey(name, ns)];
}
set {
table[new NameKey(name, ns)] = value;
}
}
object INameScope.this[string name, string ns] {
get {
return table[new NameKey(name, ns)];
}
set {
table[new NameKey(name, ns)] = value;
}
}
internal ICollection Values {
get { return table.Values; }
}
internal Array ToArray(Type type) {
Array a = Array.CreateInstance(type, table.Count);
table.Values.CopyTo(a, 0);
return a;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CacheEntry.cs
- CheckBoxFlatAdapter.cs
- CharacterBuffer.cs
- Storyboard.cs
- BufferedGraphicsManager.cs
- wmiprovider.cs
- TextUtf8RawTextWriter.cs
- TextModifier.cs
- IBuiltInEvidence.cs
- NameScope.cs
- TraceHwndHost.cs
- TypeBuilder.cs
- MemberMaps.cs
- DefaultSettingsSection.cs
- ModifiableIteratorCollection.cs
- XmlReaderSettings.cs
- TypedAsyncResult.cs
- BackStopAuthenticationModule.cs
- InvalidEnumArgumentException.cs
- Type.cs
- EraserBehavior.cs
- ConfigurationException.cs
- Native.cs
- XmlIlTypeHelper.cs
- TokenizerHelper.cs
- DurableServiceAttribute.cs
- Repeater.cs
- ToolStripProgressBar.cs
- DeploymentSectionCache.cs
- HttpsHostedTransportConfiguration.cs
- CustomTypeDescriptor.cs
- WebPartsPersonalizationAuthorization.cs
- ResourceContainerWrapper.cs
- PreProcessInputEventArgs.cs
- pingexception.cs
- PersistenceMetadataNamespace.cs
- SqlBulkCopy.cs
- SettingsPropertyValueCollection.cs
- ReplacementText.cs
- UIElement3D.cs
- BitmapEffectOutputConnector.cs
- WebOperationContext.cs
- PathGeometry.cs
- _Win32.cs
- ExternalDataExchangeService.cs
- ToolboxItem.cs
- PasswordDeriveBytes.cs
- SchemaRegistration.cs
- TextCollapsingProperties.cs
- ConnectionStringSettingsCollection.cs
- SqlClientPermission.cs
- TrustLevel.cs
- CmsUtils.cs
- StylusPointPropertyInfoDefaults.cs
- _emptywebproxy.cs
- AsyncPostBackTrigger.cs
- SystemIPAddressInformation.cs
- AsyncDataRequest.cs
- URI.cs
- Condition.cs
- PointAnimationClockResource.cs
- EdmProperty.cs
- WindowsBrush.cs
- CustomSignedXml.cs
- XMLSyntaxException.cs
- ValuePattern.cs
- QuadraticBezierSegment.cs
- PassportAuthenticationModule.cs
- LogRecordSequence.cs
- BooleanAnimationBase.cs
- LinqDataSourceContextEventArgs.cs
- QueryOutputWriter.cs
- mediapermission.cs
- GenericUI.cs
- OrderedDictionary.cs
- MimeObjectFactory.cs
- DataGridTextBoxColumn.cs
- LabelLiteral.cs
- DbModificationCommandTree.cs
- ManagedWndProcTracker.cs
- RuleProcessor.cs
- SQLInt16Storage.cs
- RestHandler.cs
- Method.cs
- ClientScriptManager.cs
- DetailsViewDeleteEventArgs.cs
- SplineKeyFrames.cs
- ApplicationInterop.cs
- InsufficientMemoryException.cs
- CompilerLocalReference.cs
- ConfigXmlWhitespace.cs
- StrokeIntersection.cs
- XmlSchemaAttribute.cs
- Expression.DebuggerProxy.cs
- DispatchWrapper.cs
- UnhandledExceptionEventArgs.cs
- EditableRegion.cs
- TextSelectionHighlightLayer.cs
- BamlBinaryReader.cs
- Stopwatch.cs