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
- TextClipboardData.cs
- MetadataArtifactLoaderFile.cs
- SoapServerProtocol.cs
- TcpTransportSecurityElement.cs
- TextTreeTextNode.cs
- BitmapFrameDecode.cs
- MemoryMappedView.cs
- OledbConnectionStringbuilder.cs
- Debug.cs
- RepeaterItemCollection.cs
- HttpCacheVary.cs
- OrderedDictionary.cs
- TextWriterEngine.cs
- SubclassTypeValidator.cs
- ListDictionary.cs
- ErrorProvider.cs
- RSAPKCS1SignatureFormatter.cs
- XmlNullResolver.cs
- AutomationPropertyInfo.cs
- MethodBody.cs
- ListContractAdapter.cs
- Brushes.cs
- TranslateTransform.cs
- ICspAsymmetricAlgorithm.cs
- SQLGuid.cs
- EntityViewContainer.cs
- Table.cs
- SQLDecimalStorage.cs
- RawUIStateInputReport.cs
- PointLightBase.cs
- ConfigurationSectionGroup.cs
- ListBoxItemWrapperAutomationPeer.cs
- XmlElementAttribute.cs
- RelationshipEnd.cs
- Speller.cs
- UIElement3D.cs
- RepeatInfo.cs
- Helper.cs
- TypeHelpers.cs
- ExceptionUtil.cs
- TextEndOfParagraph.cs
- CardSpaceSelector.cs
- WindowsScrollBar.cs
- PrivateFontCollection.cs
- Root.cs
- CodeTryCatchFinallyStatement.cs
- TranslateTransform.cs
- ClipboardData.cs
- Transactions.cs
- FlowDocument.cs
- XmlSchemaSimpleContentExtension.cs
- ToolBarPanel.cs
- CalloutQueueItem.cs
- ToolStripContextMenu.cs
- ServerProtocol.cs
- BitmapEffectDrawingContextWalker.cs
- Random.cs
- TextModifier.cs
- ProxyWebPart.cs
- StyleCollectionEditor.cs
- ToolStripItemRenderEventArgs.cs
- ObjectDataSource.cs
- NumberFunctions.cs
- IgnoreFlushAndCloseStream.cs
- XmlSchemaType.cs
- ColumnResizeAdorner.cs
- RouteItem.cs
- SourceItem.cs
- SafeRightsManagementPubHandle.cs
- HttpListenerContext.cs
- ColumnWidthChangingEvent.cs
- XamlStream.cs
- SimpleBitVector32.cs
- ItemContainerPattern.cs
- Crypto.cs
- Assign.cs
- XmlQueryTypeFactory.cs
- RegexParser.cs
- SqlTypesSchemaImporter.cs
- ConcurrencyMode.cs
- WrappedKeySecurityToken.cs
- DelegateArgumentValue.cs
- Constraint.cs
- XmlText.cs
- ADConnectionHelper.cs
- EqualityArray.cs
- PageThemeBuildProvider.cs
- ScrollViewer.cs
- DetailsViewRow.cs
- ChannelEndpointElementCollection.cs
- DataKey.cs
- XmlSchemaAttributeGroupRef.cs
- AssemblyAttributes.cs
- TypeElement.cs
- Set.cs
- ParameterCollection.cs
- RelatedPropertyManager.cs
- DiscoveryDocument.cs
- ClientTargetCollection.cs
- QilSortKey.cs