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
- OleDbPermission.cs
- RouteParser.cs
- LoginCancelEventArgs.cs
- DataServiceSaveChangesEventArgs.cs
- Vector3DKeyFrameCollection.cs
- StyleXamlParser.cs
- Task.cs
- Identity.cs
- AliasGenerator.cs
- ContentValidator.cs
- ReflectionTypeLoadException.cs
- TimeSpanMinutesConverter.cs
- MaterialCollection.cs
- OnOperation.cs
- XmlSchemaException.cs
- ReflectionHelper.cs
- KeyInterop.cs
- ProtocolsSection.cs
- CodeSubDirectory.cs
- AttributeAction.cs
- ChildDocumentBlock.cs
- ControlPager.cs
- DebugHandleTracker.cs
- SessionStateSection.cs
- ClientCredentialsSecurityTokenManager.cs
- Calendar.cs
- ILGenerator.cs
- AssertFilter.cs
- RotateTransform3D.cs
- Aes.cs
- CommentEmitter.cs
- BitmapMetadataEnumerator.cs
- ScriptingProfileServiceSection.cs
- Shape.cs
- DocumentApplicationJournalEntry.cs
- XPathExpr.cs
- UnmanagedHandle.cs
- ConfigurationStrings.cs
- TransactedBatchContext.cs
- RemotingSurrogateSelector.cs
- SafeCryptoHandles.cs
- NumberFormatInfo.cs
- PersonalizationStateQuery.cs
- CellParagraph.cs
- SrgsGrammar.cs
- XPathNodePointer.cs
- PropertyDescriptor.cs
- ConcurrentStack.cs
- BuildProvider.cs
- WebBrowserNavigatedEventHandler.cs
- RangeBase.cs
- ValueConversionAttribute.cs
- FormsAuthenticationTicket.cs
- Int32Animation.cs
- ProfileBuildProvider.cs
- WindowsFont.cs
- MediaElement.cs
- SamlSubjectStatement.cs
- IntSecurity.cs
- PaginationProgressEventArgs.cs
- TreeNodeMouseHoverEvent.cs
- contentDescriptor.cs
- SystemEvents.cs
- StorageEntityTypeMapping.cs
- GridItemProviderWrapper.cs
- AnimationException.cs
- ILGenerator.cs
- DependencyObjectType.cs
- _TransmitFileOverlappedAsyncResult.cs
- Wizard.cs
- TypeConverterHelper.cs
- StackBuilderSink.cs
- WinCategoryAttribute.cs
- TabControlEvent.cs
- SafeBitVector32.cs
- NameTable.cs
- Vector3D.cs
- ServicePointManagerElement.cs
- ProfileGroupSettingsCollection.cs
- DllNotFoundException.cs
- SerializationInfoEnumerator.cs
- ObjectStateEntryDbDataRecord.cs
- ClientTargetSection.cs
- RequestQueryParser.cs
- InstalledVoice.cs
- EntityParameterCollection.cs
- externdll.cs
- DataGrid.cs
- ReplacementText.cs
- FrameworkContentElement.cs
- SmtpReplyReader.cs
- HttpCapabilitiesSectionHandler.cs
- HtmlInputSubmit.cs
- PopupRoot.cs
- WebProxyScriptElement.cs
- BatchParser.cs
- VectorCollectionConverter.cs
- ClientScriptManager.cs
- PageBuildProvider.cs
- NonSerializedAttribute.cs