Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionary.cs / 1305376 / XmlDictionary.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System; using System.IO; using System.Xml; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Runtime.Serialization; public class XmlDictionary : IXmlDictionary { static IXmlDictionary empty; Dictionarylookup; XmlDictionaryString[] strings; int nextId; static public IXmlDictionary Empty { get { if (empty == null) empty = new EmptyDictionary(); return empty; } } public XmlDictionary() { this.lookup = new Dictionary (); this.strings = null; this.nextId = 0; } public XmlDictionary(int capacity) { this.lookup = new Dictionary (capacity); this.strings = new XmlDictionaryString[capacity]; this.nextId = 0; } public virtual XmlDictionaryString Add(string value) { XmlDictionaryString str; if (!this.lookup.TryGetValue(value, out str)) { if (this.strings == null) { this.strings = new XmlDictionaryString[4]; } else if (this.nextId == this.strings.Length) { int newSize = this.nextId * 2; if (newSize == 0) newSize = 4; Array.Resize(ref this.strings, newSize); } str = new XmlDictionaryString(this, value, this.nextId); this.strings[this.nextId] = str; this.lookup.Add(value, str); this.nextId++; } return str; } public virtual bool TryLookup(string value, out XmlDictionaryString result) { return this.lookup.TryGetValue(value, out result); } public virtual bool TryLookup(int key, out XmlDictionaryString result) { if (key < 0 || key >= this.nextId) { result = null; return false; } result = this.strings[key]; return true; } public virtual bool TryLookup(XmlDictionaryString value, out XmlDictionaryString result) { if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); if (value.Dictionary != this) { result = null; return false; } result = value; return true; } class EmptyDictionary : IXmlDictionary { public bool TryLookup(string value, out XmlDictionaryString result) { result = null; return false; } public bool TryLookup(int key, out XmlDictionaryString result) { result = null; return false; } public bool TryLookup(XmlDictionaryString value, out XmlDictionaryString result) { result = null; return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System; using System.IO; using System.Xml; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Runtime.Serialization; public class XmlDictionary : IXmlDictionary { static IXmlDictionary empty; Dictionary lookup; XmlDictionaryString[] strings; int nextId; static public IXmlDictionary Empty { get { if (empty == null) empty = new EmptyDictionary(); return empty; } } public XmlDictionary() { this.lookup = new Dictionary (); this.strings = null; this.nextId = 0; } public XmlDictionary(int capacity) { this.lookup = new Dictionary (capacity); this.strings = new XmlDictionaryString[capacity]; this.nextId = 0; } public virtual XmlDictionaryString Add(string value) { XmlDictionaryString str; if (!this.lookup.TryGetValue(value, out str)) { if (this.strings == null) { this.strings = new XmlDictionaryString[4]; } else if (this.nextId == this.strings.Length) { int newSize = this.nextId * 2; if (newSize == 0) newSize = 4; Array.Resize(ref this.strings, newSize); } str = new XmlDictionaryString(this, value, this.nextId); this.strings[this.nextId] = str; this.lookup.Add(value, str); this.nextId++; } return str; } public virtual bool TryLookup(string value, out XmlDictionaryString result) { return this.lookup.TryGetValue(value, out result); } public virtual bool TryLookup(int key, out XmlDictionaryString result) { if (key < 0 || key >= this.nextId) { result = null; return false; } result = this.strings[key]; return true; } public virtual bool TryLookup(XmlDictionaryString value, out XmlDictionaryString result) { if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); if (value.Dictionary != this) { result = null; return false; } result = value; return true; } class EmptyDictionary : IXmlDictionary { public bool TryLookup(string value, out XmlDictionaryString result) { result = null; return false; } public bool TryLookup(int key, out XmlDictionaryString result) { result = null; return false; } public bool TryLookup(XmlDictionaryString value, out XmlDictionaryString result) { result = null; return false; } } } } // 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
- Assembly.cs
- GroupLabel.cs
- Table.cs
- MetafileHeader.cs
- TripleDES.cs
- SapiRecoInterop.cs
- CacheMemory.cs
- GroupBoxRenderer.cs
- SQLDouble.cs
- SplineQuaternionKeyFrame.cs
- DataRecord.cs
- ISFClipboardData.cs
- ErrorHandler.cs
- XmlWrappingReader.cs
- LocatorGroup.cs
- ItemCollectionEditor.cs
- ReadOnlyDataSourceView.cs
- DictionaryEditChange.cs
- InheritablePropertyChangeInfo.cs
- OleDbPermission.cs
- QuadraticBezierSegment.cs
- SendContent.cs
- DataGridViewEditingControlShowingEventArgs.cs
- UnsafeNativeMethods.cs
- XmlAggregates.cs
- ListItemViewControl.cs
- glyphs.cs
- DbConnectionOptions.cs
- Graph.cs
- NetDataContractSerializer.cs
- AQNBuilder.cs
- AdjustableArrowCap.cs
- ResourcesGenerator.cs
- odbcmetadatacolumnnames.cs
- TableItemPattern.cs
- EdgeModeValidation.cs
- DesignerActionList.cs
- AutomationElementCollection.cs
- bindurihelper.cs
- MessageEncodingBindingElementImporter.cs
- RelationshipType.cs
- ValueConversionAttribute.cs
- NotSupportedException.cs
- NativeMethods.cs
- BindingValueChangedEventArgs.cs
- FileEnumerator.cs
- JulianCalendar.cs
- PropertyPathConverter.cs
- UnsafeNativeMethods.cs
- ClientScriptManagerWrapper.cs
- MimeMapping.cs
- RectangleGeometry.cs
- FlowDocumentReader.cs
- SQLInt16.cs
- PrivilegeNotHeldException.cs
- TabletDeviceInfo.cs
- TextBoxBase.cs
- Label.cs
- SqlReorderer.cs
- InheritanceContextHelper.cs
- SystemThemeKey.cs
- TreeViewItemAutomationPeer.cs
- _ConnectStream.cs
- HitTestParameters3D.cs
- OleDbInfoMessageEvent.cs
- WebPart.cs
- AuthenticationService.cs
- SqlNotificationRequest.cs
- FigureParaClient.cs
- regiisutil.cs
- QueryRewriter.cs
- StorageAssociationSetMapping.cs
- XhtmlBasicSelectionListAdapter.cs
- Visual3D.cs
- CfgSemanticTag.cs
- PropertyMetadata.cs
- MailMessageEventArgs.cs
- ButtonBaseAdapter.cs
- PersistChildrenAttribute.cs
- QueryReaderSettings.cs
- ProfilePropertyMetadata.cs
- BmpBitmapDecoder.cs
- UserPersonalizationStateInfo.cs
- HandleTable.cs
- SqlUserDefinedTypeAttribute.cs
- NamedPipeActivation.cs
- HttpRuntime.cs
- Registry.cs
- InheritanceContextChangedEventManager.cs
- DebugInfo.cs
- TraceContextRecord.cs
- CodeComment.cs
- ComplexPropertyEntry.cs
- ErrorHandler.cs
- RelationshipEndMember.cs
- XmlSchemaException.cs
- AutomationPropertyInfo.cs
- EncodingNLS.cs
- SymbolMethod.cs
- ListDictionary.cs