Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // // 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
- UdpDiscoveryEndpointElement.cs
- DateTimeUtil.cs
- SurrogateEncoder.cs
- OperationAbortedException.cs
- AnchoredBlock.cs
- TablePatternIdentifiers.cs
- SingleAnimation.cs
- XPathException.cs
- DbXmlEnabledProviderManifest.cs
- InstanceDescriptor.cs
- DataIdProcessor.cs
- BinaryNode.cs
- TypeElementCollection.cs
- MenuItem.cs
- DataErrorValidationRule.cs
- CellPartitioner.cs
- GridViewEditEventArgs.cs
- OleDbParameterCollection.cs
- Dispatcher.cs
- CodeConditionStatement.cs
- SvcMapFile.cs
- ParameterExpression.cs
- DoubleLinkListEnumerator.cs
- LinqDataSource.cs
- DataGridViewUtilities.cs
- ShimAsPublicXamlType.cs
- GPRECTF.cs
- FlowNode.cs
- InternalTransaction.cs
- XmlRawWriter.cs
- VBCodeProvider.cs
- SafeSystemMetrics.cs
- FileIOPermission.cs
- XPathArrayIterator.cs
- RangeValidator.cs
- SortKey.cs
- DataKeyArray.cs
- FontConverter.cs
- PrintPreviewGraphics.cs
- PlanCompiler.cs
- ResolveCriteria11.cs
- HashAlgorithm.cs
- XNodeValidator.cs
- BulletedListEventArgs.cs
- DetailsViewInsertEventArgs.cs
- SafeNativeMethodsOther.cs
- CodeRemoveEventStatement.cs
- WebEventTraceProvider.cs
- ModifiableIteratorCollection.cs
- OptimalBreakSession.cs
- TraceLog.cs
- NominalTypeEliminator.cs
- IndexedString.cs
- ItemList.cs
- HierarchicalDataSourceControl.cs
- XmlQualifiedName.cs
- CmsInterop.cs
- HtmlTableRow.cs
- MatrixTransform3D.cs
- DataGridItemEventArgs.cs
- COAUTHIDENTITY.cs
- DataGridViewRowPostPaintEventArgs.cs
- OpCodes.cs
- Selection.cs
- FormatConvertedBitmap.cs
- ItemMap.cs
- CSharpCodeProvider.cs
- PolyBezierSegment.cs
- ObjectItemAssemblyLoader.cs
- ContextQuery.cs
- Dictionary.cs
- XmlLoader.cs
- SiteMapNode.cs
- mediapermission.cs
- SystemColors.cs
- WindowHideOrCloseTracker.cs
- ToolStripStatusLabel.cs
- COM2IDispatchConverter.cs
- ParagraphResult.cs
- SamlAuthorizationDecisionStatement.cs
- RegexTypeEditor.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- PassportAuthenticationEventArgs.cs
- CheckBoxList.cs
- HostProtectionPermission.cs
- PermissionAttributes.cs
- ISFTagAndGuidCache.cs
- AsyncPostBackErrorEventArgs.cs
- TreeIterators.cs
- TransactedBatchingBehavior.cs
- TaiwanLunisolarCalendar.cs
- SoapServerMethod.cs
- InstanceCollisionException.cs
- SqlCacheDependencyDatabase.cs
- PerformanceCounterTraceRecord.cs
- TemplateEditingService.cs
- Pens.cs
- ComplexPropertyEntry.cs
- DocumentXmlWriter.cs
- Vector3DAnimationUsingKeyFrames.cs