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
- ClientTargetCollection.cs
- AnimatedTypeHelpers.cs
- Profiler.cs
- PersistenceMetadataNamespace.cs
- CheckBox.cs
- DiscoveryReferences.cs
- ManagedIStream.cs
- ScrollPattern.cs
- RSAPKCS1SignatureFormatter.cs
- TraceListeners.cs
- Padding.cs
- UIElementCollection.cs
- OdbcEnvironmentHandle.cs
- SystemIPAddressInformation.cs
- ProjectionPathSegment.cs
- MatrixAnimationUsingKeyFrames.cs
- NullableFloatAverageAggregationOperator.cs
- UnsafeNativeMethods.cs
- FormsAuthenticationModule.cs
- WebPageTraceListener.cs
- DeferredBinaryDeserializerExtension.cs
- XPathScanner.cs
- SoapParser.cs
- StructuredTypeInfo.cs
- ManagedIStream.cs
- BuilderPropertyEntry.cs
- FileLoadException.cs
- ToolTipService.cs
- EncoderExceptionFallback.cs
- TitleStyle.cs
- HighlightVisual.cs
- HeaderUtility.cs
- RunInstallerAttribute.cs
- WorkflowExecutor.cs
- TextLineBreak.cs
- WebPartConnection.cs
- EmissiveMaterial.cs
- InkCanvas.cs
- ScriptControlManager.cs
- DesignerRegionCollection.cs
- HwndSourceParameters.cs
- XmlSerializerNamespaces.cs
- CoreSwitches.cs
- WindowsGrip.cs
- CodeTypeMember.cs
- TriggerActionCollection.cs
- ViewSimplifier.cs
- StackBuilderSink.cs
- DataGridViewCellParsingEventArgs.cs
- MemberMemberBinding.cs
- LicenseContext.cs
- DtdParser.cs
- _BufferOffsetSize.cs
- WasAdminWrapper.cs
- MarkupProperty.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- DNS.cs
- DataBoundLiteralControl.cs
- DataGridViewCellCancelEventArgs.cs
- DynamicRendererThreadManager.cs
- AsymmetricSignatureDeformatter.cs
- MissingMemberException.cs
- ContextMarshalException.cs
- CheckoutException.cs
- OrderedDictionaryStateHelper.cs
- TransformerInfoCollection.cs
- SaveFileDialog.cs
- FontWeightConverter.cs
- entitydatasourceentitysetnameconverter.cs
- QuaternionAnimationBase.cs
- NeutralResourcesLanguageAttribute.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- WebBaseEventKeyComparer.cs
- PagesSection.cs
- OpCodes.cs
- ComponentChangedEvent.cs
- ApplicationSecurityManager.cs
- DocumentViewer.cs
- IssuedTokenServiceCredential.cs
- VirtualDirectoryMapping.cs
- SiteMapProvider.cs
- _NtlmClient.cs
- ContractReference.cs
- HtmlInputFile.cs
- Latin1Encoding.cs
- Ipv6Element.cs
- TimeoutHelper.cs
- ApplicationManager.cs
- ProfilePropertyMetadata.cs
- PathFigure.cs
- TreeIterator.cs
- ScrollChangedEventArgs.cs
- HttpWriter.cs
- XamlClipboardData.cs
- DecimalAnimationBase.cs
- GlyphTypeface.cs
- GridViewColumnHeader.cs
- BatchParser.cs
- CompareValidator.cs
- URLAttribute.cs