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
- ProfileSettingsCollection.cs
- ImageField.cs
- MonthChangedEventArgs.cs
- TextProperties.cs
- ContentPlaceHolderDesigner.cs
- TypeConverter.cs
- LogicalTreeHelper.cs
- Int16KeyFrameCollection.cs
- ObjectStateEntryDbDataRecord.cs
- MaterialGroup.cs
- SHA384.cs
- Random.cs
- CalloutQueueItem.cs
- Exceptions.cs
- GeneralTransform.cs
- SvcMapFileSerializer.cs
- SmtpReplyReaderFactory.cs
- IdleTimeoutMonitor.cs
- mediaeventargs.cs
- DetailsViewDeletedEventArgs.cs
- log.cs
- WebRequestModuleElement.cs
- PtsHelper.cs
- SqlUserDefinedAggregateAttribute.cs
- PathGeometry.cs
- ObjectItemCollection.cs
- PointConverter.cs
- ChannelEndpointElementCollection.cs
- ConstantExpression.cs
- TriggerAction.cs
- ActivityPropertyReference.cs
- DataGridViewCheckBoxColumn.cs
- StorageSetMapping.cs
- TdsParser.cs
- ArcSegment.cs
- DefaultValueTypeConverter.cs
- ImageMetadata.cs
- FamilyMap.cs
- MouseWheelEventArgs.cs
- DurableInstance.cs
- SoundPlayer.cs
- DigitShape.cs
- WebPartMenu.cs
- ButtonFlatAdapter.cs
- ISFClipboardData.cs
- DecimalKeyFrameCollection.cs
- Underline.cs
- ParameterReplacerVisitor.cs
- StateItem.cs
- OperatorExpressions.cs
- PageRanges.cs
- ViewDesigner.cs
- FixedPage.cs
- FtpRequestCacheValidator.cs
- PerformanceCountersElement.cs
- ProtocolsSection.cs
- AutomationPatternInfo.cs
- WebEventTraceProvider.cs
- WindowsButton.cs
- ColorAnimationUsingKeyFrames.cs
- ChineseLunisolarCalendar.cs
- VectorCollection.cs
- TextDecoration.cs
- HtmlEncodedRawTextWriter.cs
- MenuEventArgs.cs
- CodeMemberProperty.cs
- JoinElimination.cs
- XmlNode.cs
- ISAPIRuntime.cs
- RectangleConverter.cs
- BitmapMetadata.cs
- WCFServiceClientProxyGenerator.cs
- IpcServerChannel.cs
- ConfigXmlSignificantWhitespace.cs
- StringDictionary.cs
- StorageScalarPropertyMapping.cs
- SvcMapFile.cs
- TraceSection.cs
- SharedPerformanceCounter.cs
- CodeDomConfigurationHandler.cs
- FlagsAttribute.cs
- ContextMenuAutomationPeer.cs
- TextPattern.cs
- EntityContainer.cs
- Quad.cs
- ItemTypeToolStripMenuItem.cs
- QueryContinueDragEvent.cs
- EllipticalNodeOperations.cs
- Viewport3DAutomationPeer.cs
- ActivationArguments.cs
- HybridDictionary.cs
- XmlMtomReader.cs
- ToolStripRenderEventArgs.cs
- WebPartConnectionsConfigureVerb.cs
- HttpApplicationFactory.cs
- Misc.cs
- ResourceReferenceExpression.cs
- Emitter.cs
- xdrvalidator.cs
- DataGridViewComboBoxEditingControl.cs