Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / Serialization / NameTable.cs / 1 / 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.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- System.Data.OracleClient_BID.cs
- BindStream.cs
- MultiBindingExpression.cs
- Array.cs
- RightsManagementEncryptedStream.cs
- SupportsEventValidationAttribute.cs
- PerformanceCounterScope.cs
- AssociationSetMetadata.cs
- DataGridViewIntLinkedList.cs
- GenericEnumerator.cs
- DiscoveryInnerClientAdhocCD1.cs
- NativeMethodsCLR.cs
- NextPreviousPagerField.cs
- PreservationFileReader.cs
- Pointer.cs
- FilterQueryOptionExpression.cs
- CatalogPartCollection.cs
- RemoteWebConfigurationHost.cs
- ToolStripButton.cs
- CatchDesigner.xaml.cs
- Delegate.cs
- ConstraintStruct.cs
- OracleRowUpdatedEventArgs.cs
- OleServicesContext.cs
- Validator.cs
- AgileSafeNativeMemoryHandle.cs
- TrustVersion.cs
- BoolExpr.cs
- RemoveStoryboard.cs
- SecurityUtils.cs
- LogicalExpr.cs
- SqlTypesSchemaImporter.cs
- FontInfo.cs
- ConstraintManager.cs
- LinqDataSourceValidationException.cs
- XhtmlBasicLiteralTextAdapter.cs
- StorageComplexPropertyMapping.cs
- LocationSectionRecord.cs
- XmlEncodedRawTextWriter.cs
- CompositeFontInfo.cs
- RecipientInfo.cs
- ApplicationActivator.cs
- BrowserDefinition.cs
- _SslState.cs
- XmlSchemaAttributeGroupRef.cs
- CoordinationService.cs
- VisualStyleRenderer.cs
- XmlUtil.cs
- AddInStore.cs
- EncodingInfo.cs
- StreamAsIStream.cs
- TimelineGroup.cs
- DataGridViewColumnConverter.cs
- ConnectionsZone.cs
- OracleDataAdapter.cs
- PrintingPermissionAttribute.cs
- LineServices.cs
- XmlUtf8RawTextWriter.cs
- TranslateTransform.cs
- ComponentChangedEvent.cs
- RepeaterItemCollection.cs
- WindowsScrollBar.cs
- BypassElement.cs
- Grant.cs
- InkCanvasSelection.cs
- ExtendedPropertyDescriptor.cs
- EntityProviderFactory.cs
- OutputCacheProfile.cs
- BlockingCollection.cs
- XmlLangPropertyAttribute.cs
- PtsHost.cs
- SchemaImporter.cs
- XmlSchemaSet.cs
- WindowsSysHeader.cs
- WebServiceTypeData.cs
- WebPartDisplayMode.cs
- ListDictionary.cs
- TreeNode.cs
- MemberAccessException.cs
- SystemInfo.cs
- RectangleGeometry.cs
- WebPartConnectionsConfigureVerb.cs
- ImmutableClientRuntime.cs
- BulletChrome.cs
- UpDownEvent.cs
- DrawingServices.cs
- KoreanCalendar.cs
- ConfigXmlSignificantWhitespace.cs
- BinaryFormatterWriter.cs
- DataSourceControlBuilder.cs
- SpanIndex.cs
- TypedDatasetGenerator.cs
- CodeTypeMemberCollection.cs
- MethodBody.cs
- DebuggerAttributes.cs
- EUCJPEncoding.cs
- MenuItem.cs
- CompilerError.cs
- StylusEventArgs.cs
- FontWeight.cs