Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsGraphics.cs
- MobileTextWriter.cs
- IdentityReference.cs
- EnumerableCollectionView.cs
- ConnectionManagementElement.cs
- XmlSerializationGeneratedCode.cs
- CodeVariableDeclarationStatement.cs
- TimeStampChecker.cs
- DataServiceException.cs
- OptimalTextSource.cs
- ObjectDataSourceMethodEventArgs.cs
- InheritanceService.cs
- FormsAuthenticationConfiguration.cs
- PipelineModuleStepContainer.cs
- SafeCertificateStore.cs
- XmlSchemaObject.cs
- EventBuilder.cs
- JavaScriptSerializer.cs
- BaseTemplateParser.cs
- CompositeActivityCodeGenerator.cs
- DPTypeDescriptorContext.cs
- DrawingContextDrawingContextWalker.cs
- SqlTriggerAttribute.cs
- ListViewUpdateEventArgs.cs
- OperandQuery.cs
- HttpCapabilitiesEvaluator.cs
- HttpListenerElement.cs
- IdentitySection.cs
- DescendentsWalker.cs
- webeventbuffer.cs
- RegistryDataKey.cs
- SystemIPGlobalProperties.cs
- ToolStripStatusLabel.cs
- DataGridViewBindingCompleteEventArgs.cs
- ConnectionPoolManager.cs
- TimeoutTimer.cs
- DetailsViewModeEventArgs.cs
- TemplateEditingVerb.cs
- BackgroundWorker.cs
- InternalBufferOverflowException.cs
- WebPartHeaderCloseVerb.cs
- HashCodeCombiner.cs
- ADRoleFactory.cs
- QuadraticEase.cs
- StructuralCache.cs
- NameSpaceEvent.cs
- TransactionScope.cs
- SQLInt32Storage.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- StructuredTypeInfo.cs
- OperationContractAttribute.cs
- RuntimeConfigLKG.cs
- EditorPartCollection.cs
- ObjectDataSourceEventArgs.cs
- MouseEvent.cs
- CatalogPartDesigner.cs
- PolicyImporterElement.cs
- UriParserTemplates.cs
- DateTime.cs
- DataGridViewColumnCollection.cs
- ThreadBehavior.cs
- SqlCharStream.cs
- GridViewColumnCollection.cs
- ConsumerConnectionPointCollection.cs
- CodeDOMUtility.cs
- EntityReference.cs
- ClientApiGenerator.cs
- ServiceBehaviorAttribute.cs
- ImageFormatConverter.cs
- ClientSettingsProvider.cs
- ProviderIncompatibleException.cs
- TypeRestriction.cs
- XmlSchemaProviderAttribute.cs
- Section.cs
- Stream.cs
- ListBindingHelper.cs
- SafeLibraryHandle.cs
- DifferencingCollection.cs
- ComAdminWrapper.cs
- unitconverter.cs
- SqlUserDefinedAggregateAttribute.cs
- FontInfo.cs
- Selection.cs
- ExtendLockCommand.cs
- CompModSwitches.cs
- ArraySortHelper.cs
- ComEventsHelper.cs
- DataGridItemCollection.cs
- Hyperlink.cs
- ExtentCqlBlock.cs
- AssemblyInfo.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- XmlUtf8RawTextWriter.cs
- DbXmlEnabledProviderManifest.cs
- IBuiltInEvidence.cs
- SpeechAudioFormatInfo.cs
- StaticContext.cs
- MetadataUtilsSmi.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- Operators.cs