Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionary.cs / 1 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StatusBarDrawItemEvent.cs
- CompilerInfo.cs
- Types.cs
- ErrorFormatter.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- OpenFileDialog.cs
- MouseActionConverter.cs
- ActivationArguments.cs
- XmlNodeList.cs
- OutputCacheSection.cs
- DefinitionUpdate.cs
- FileLogRecord.cs
- SequenceDesigner.cs
- CustomAssemblyResolver.cs
- PageStatePersister.cs
- DataTableReaderListener.cs
- PeerNameRecordCollection.cs
- XmlUtilWriter.cs
- RequestQueue.cs
- ResponseStream.cs
- SequentialOutput.cs
- IgnoreFileBuildProvider.cs
- NamespaceInfo.cs
- Sql8ConformanceChecker.cs
- Size3DValueSerializer.cs
- ListDataBindEventArgs.cs
- RowBinding.cs
- StylusPlugInCollection.cs
- ImageFormatConverter.cs
- ConfigXmlAttribute.cs
- MissingManifestResourceException.cs
- UrlMappingsSection.cs
- FrameworkElementAutomationPeer.cs
- ToolStripPanelRenderEventArgs.cs
- DesignerTransaction.cs
- DbProviderFactory.cs
- PriorityQueue.cs
- GroupBox.cs
- TemplateControlCodeDomTreeGenerator.cs
- CodeGenerator.cs
- SafeSecurityHandles.cs
- WebZone.cs
- VerticalAlignConverter.cs
- MsmqInputChannelBase.cs
- BindToObject.cs
- DesignerForm.cs
- ListBindingConverter.cs
- MediaTimeline.cs
- CodeIdentifiers.cs
- DiscoveryInnerClientManaged11.cs
- TemplateKeyConverter.cs
- ExpressionHelper.cs
- ZoomPercentageConverter.cs
- HoistedLocals.cs
- NullReferenceException.cs
- FixedSOMElement.cs
- SqlDataSourceStatusEventArgs.cs
- DeleteStoreRequest.cs
- DrawingAttributeSerializer.cs
- BitmapEffectInputData.cs
- RsaSecurityToken.cs
- BaseCodePageEncoding.cs
- VirtualPathProvider.cs
- MemoryMappedView.cs
- MappingMetadataHelper.cs
- CurrentTimeZone.cs
- DataGridViewRowHeaderCell.cs
- SettingsPropertyIsReadOnlyException.cs
- IndividualDeviceConfig.cs
- SqlServices.cs
- ComponentChangingEvent.cs
- ConnectionManagementSection.cs
- SafeFileHandle.cs
- RegexReplacement.cs
- DragEventArgs.cs
- ISAPIWorkerRequest.cs
- MenuRendererClassic.cs
- DropDownButton.cs
- JournalEntryStack.cs
- HttpListener.cs
- _Events.cs
- ListItem.cs
- SplayTreeNode.cs
- FormatConvertedBitmap.cs
- XmlNodeComparer.cs
- BStrWrapper.cs
- FlowDocumentFormatter.cs
- SplineQuaternionKeyFrame.cs
- Line.cs
- Configuration.cs
- ContextMenuStrip.cs
- SqlSupersetValidator.cs
- SafeFileMapViewHandle.cs
- SplitterPanelDesigner.cs
- BamlResourceContent.cs
- ProviderUtil.cs
- InternalsVisibleToAttribute.cs
- TextEditorTyping.cs
- XmlSchemaObjectCollection.cs
- DropTarget.cs