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
- ConstrainedDataObject.cs
- TreeNodeStyle.cs
- SamlAuthenticationStatement.cs
- RecipientInfo.cs
- SqlDataSourceStatusEventArgs.cs
- HttpWebRequest.cs
- TextServicesContext.cs
- _AutoWebProxyScriptEngine.cs
- EmptyElement.cs
- PolicyValidationException.cs
- TreeViewCancelEvent.cs
- WebPartTransformerAttribute.cs
- NamespaceQuery.cs
- PresentationAppDomainManager.cs
- TextServicesHost.cs
- InvalidateEvent.cs
- MimeMapping.cs
- WebPartDisplayModeEventArgs.cs
- WebBrowsableAttribute.cs
- RoleGroup.cs
- WorkflowInlining.cs
- CheckBoxField.cs
- ItemList.cs
- Metadata.cs
- CompositionAdorner.cs
- SemaphoreSecurity.cs
- CreateUserWizard.cs
- EntityCommandDefinition.cs
- SQLBytesStorage.cs
- DataGridViewCellConverter.cs
- RemotingServices.cs
- DataComponentMethodGenerator.cs
- ImageListUtils.cs
- WhitespaceRuleReader.cs
- Encoder.cs
- _StreamFramer.cs
- UInt64Storage.cs
- SynchronizedDispatch.cs
- TextElementAutomationPeer.cs
- Stylus.cs
- DataBoundLiteralControl.cs
- WorkflowElementDialog.cs
- ExternalException.cs
- StrokeNodeData.cs
- CompModSwitches.cs
- LocatorManager.cs
- ControlPropertyNameConverter.cs
- HiddenFieldPageStatePersister.cs
- Timer.cs
- DefaultPropertiesToSend.cs
- BrowserDefinitionCollection.cs
- StorageAssociationTypeMapping.cs
- XmlDocumentFragment.cs
- GeometryHitTestParameters.cs
- Line.cs
- DesignerRegionCollection.cs
- DataGridViewDataErrorEventArgs.cs
- TdsParameterSetter.cs
- JavaScriptString.cs
- RefreshEventArgs.cs
- XPathQilFactory.cs
- WebPartDisplayModeCollection.cs
- SerializationInfoEnumerator.cs
- EventPropertyMap.cs
- PropertyTab.cs
- StylusPointPropertyUnit.cs
- ConfigXmlSignificantWhitespace.cs
- StylusOverProperty.cs
- Message.cs
- SetStoryboardSpeedRatio.cs
- mediaclock.cs
- ExtendLockCommand.cs
- ToolboxDataAttribute.cs
- ConfigurationFileMap.cs
- ButtonBase.cs
- EventSetterHandlerConverter.cs
- TTSEvent.cs
- ToolStripSplitButton.cs
- DrawingAttributes.cs
- GridViewCellAutomationPeer.cs
- DispatcherObject.cs
- TdsRecordBufferSetter.cs
- SqlUserDefinedAggregateAttribute.cs
- BitmapEffectDrawingContent.cs
- FrameworkContextData.cs
- StylusOverProperty.cs
- RenderContext.cs
- SystemDropShadowChrome.cs
- ReflectionUtil.cs
- MessageAction.cs
- DoubleAnimationBase.cs
- DataGridTemplateColumn.cs
- ToolStripMenuItemCodeDomSerializer.cs
- _BaseOverlappedAsyncResult.cs
- SecurityManager.cs
- TextSegment.cs
- StorageMappingFragment.cs
- Package.cs
- VarInfo.cs
- DateTimeFormatInfo.cs