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
- LinqDataView.cs
- HtmlHead.cs
- IDispatchConstantAttribute.cs
- XPathScanner.cs
- HttpRawResponse.cs
- FastEncoder.cs
- HttpListener.cs
- ImageListStreamer.cs
- MultiDataTrigger.cs
- WebSysDefaultValueAttribute.cs
- IISUnsafeMethods.cs
- StylusCaptureWithinProperty.cs
- TextSchema.cs
- Blend.cs
- DefaultAutoFieldGenerator.cs
- DateTime.cs
- bindurihelper.cs
- SourceFileBuildProvider.cs
- _HelperAsyncResults.cs
- PartitionedStreamMerger.cs
- PropertyConverter.cs
- XmlNodeComparer.cs
- DocumentViewerBaseAutomationPeer.cs
- MsmqChannelFactory.cs
- IISUnsafeMethods.cs
- AccessControlEntry.cs
- Timer.cs
- TreeViewDesigner.cs
- DecimalFormatter.cs
- ConfigDefinitionUpdates.cs
- Lookup.cs
- Symbol.cs
- TokenCreationParameter.cs
- SqlException.cs
- TableLayoutPanel.cs
- StringDictionary.cs
- RotationValidation.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- HtmlElement.cs
- DynamicValidator.cs
- DetailsViewPagerRow.cs
- GcHandle.cs
- CodePropertyReferenceExpression.cs
- sqlmetadatafactory.cs
- SystemDiagnosticsSection.cs
- InputLanguageManager.cs
- XmlDataSource.cs
- StringSource.cs
- FormViewDeletedEventArgs.cs
- DocumentOrderQuery.cs
- ImageCollectionCodeDomSerializer.cs
- Rules.cs
- ScriptControl.cs
- Span.cs
- TextEmbeddedObject.cs
- DataGridViewCellPaintingEventArgs.cs
- RightNameExpirationInfoPair.cs
- TextSegment.cs
- ObjectDataSource.cs
- Int32CollectionConverter.cs
- FamilyCollection.cs
- BamlMapTable.cs
- MatrixTransform3D.cs
- ToolStripPanelRenderEventArgs.cs
- MulticastDelegate.cs
- SqlResolver.cs
- CharacterMetrics.cs
- LogConverter.cs
- Span.cs
- C14NUtil.cs
- PerfService.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RetrieveVirtualItemEventArgs.cs
- CompoundFileDeflateTransform.cs
- GeometryCollection.cs
- SettingsBase.cs
- EntityModelBuildProvider.cs
- RSAPKCS1SignatureDeformatter.cs
- DataServiceClientException.cs
- SecUtil.cs
- DataGridViewBindingCompleteEventArgs.cs
- StyleSelector.cs
- ReflectEventDescriptor.cs
- KeyInterop.cs
- GridViewUpdateEventArgs.cs
- DataTableCollection.cs
- altserialization.cs
- KeyedPriorityQueue.cs
- OnOperation.cs
- DescendantQuery.cs
- CellTreeNodeVisitors.cs
- Matrix3DConverter.cs
- DataViewManager.cs
- LineProperties.cs
- SecurityException.cs
- TrustManagerPromptUI.cs
- MessageBox.cs
- FontDriver.cs
- ToolStripDropDownButton.cs