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
- FormViewRow.cs
- LocalizableAttribute.cs
- EntityCommandDefinition.cs
- AccessedThroughPropertyAttribute.cs
- GlyphInfoList.cs
- ArrangedElement.cs
- IdentityManager.cs
- NumberSubstitution.cs
- Pkcs7Signer.cs
- WindowsListViewSubItem.cs
- ScheduleChanges.cs
- FormsAuthenticationModule.cs
- UdpChannelFactory.cs
- SoapEnumAttribute.cs
- MetadataItemSerializer.cs
- DockingAttribute.cs
- FontFaceLayoutInfo.cs
- dsa.cs
- MapPathBasedVirtualPathProvider.cs
- MethodBody.cs
- Compilation.cs
- RankException.cs
- TimeSpanConverter.cs
- AssociationEndMember.cs
- odbcmetadatafactory.cs
- PasswordBox.cs
- TreeNodeSelectionProcessor.cs
- DateTimeFormatInfoScanner.cs
- XpsFilter.cs
- ClientScriptManagerWrapper.cs
- GraphicsPath.cs
- HuffmanTree.cs
- SnapshotChangeTrackingStrategy.cs
- SQLChars.cs
- SQLDateTime.cs
- MLangCodePageEncoding.cs
- SafePipeHandle.cs
- ProtectedProviderSettings.cs
- XhtmlBasicTextBoxAdapter.cs
- SqlServices.cs
- XmlUtf8RawTextWriter.cs
- Rotation3DAnimation.cs
- MetadataArtifactLoaderComposite.cs
- ViewManager.cs
- ClientRuntimeConfig.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- TimeSpanSecondsConverter.cs
- X509Certificate2Collection.cs
- View.cs
- InProcStateClientManager.cs
- DesignerUtils.cs
- printdlgexmarshaler.cs
- DropDownList.cs
- HtmlTitle.cs
- BlockUIContainer.cs
- DateTimePicker.cs
- AlphabetConverter.cs
- Renderer.cs
- DragDrop.cs
- XmlText.cs
- __Filters.cs
- Compensate.cs
- KeyBinding.cs
- TextTrailingWordEllipsis.cs
- StatusBarPanel.cs
- ToolStripGripRenderEventArgs.cs
- AppDomain.cs
- DataGridViewRowStateChangedEventArgs.cs
- IRCollection.cs
- ContentValidator.cs
- ConsoleEntryPoint.cs
- Exceptions.cs
- DbProviderFactories.cs
- DoubleLink.cs
- itemelement.cs
- BoundPropertyEntry.cs
- WorkingDirectoryEditor.cs
- EditorResources.cs
- EntityTypeEmitter.cs
- TraceInternal.cs
- Authorization.cs
- PropertyGeneratedEventArgs.cs
- WebConfigurationHost.cs
- BulletedList.cs
- XmlSchemaAny.cs
- ValidatorUtils.cs
- CryptoProvider.cs
- ColorAnimationUsingKeyFrames.cs
- ListView.cs
- SqlBinder.cs
- HtmlContainerControl.cs
- Mouse.cs
- RenderDataDrawingContext.cs
- WebBrowserNavigatingEventHandler.cs
- oledbconnectionstring.cs
- RegionInfo.cs
- ScrollViewer.cs
- StructuredTypeInfo.cs
- SoapTypeAttribute.cs
- DeferredBinaryDeserializerExtension.cs