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
- SourceElementsCollection.cs
- SchemaInfo.cs
- WindowsFormsSynchronizationContext.cs
- BamlBinaryReader.cs
- SortableBindingList.cs
- AccessibilityHelperForVista.cs
- basevalidator.cs
- RangeBaseAutomationPeer.cs
- XmlIlVisitor.cs
- HelpPage.cs
- GenerateTemporaryTargetAssembly.cs
- XmlDataSource.cs
- RegistryKey.cs
- DrawingAttributeSerializer.cs
- WSFederationHttpBinding.cs
- ETagAttribute.cs
- GridViewUpdateEventArgs.cs
- TransformerInfoCollection.cs
- CacheModeValueSerializer.cs
- Parameter.cs
- ToolTipService.cs
- NetworkInformationPermission.cs
- WeakEventTable.cs
- ObjectParameterCollection.cs
- ReaderWriterLock.cs
- DataGridCellAutomationPeer.cs
- ShaderEffect.cs
- ManifestResourceInfo.cs
- ResourcePool.cs
- TableLayoutStyle.cs
- PermissionRequestEvidence.cs
- ClientScriptManager.cs
- WeakHashtable.cs
- HttpBindingExtension.cs
- TokenBasedSetEnumerator.cs
- PolicyException.cs
- ToolstripProfessionalRenderer.cs
- DateBoldEvent.cs
- DataListItemCollection.cs
- Attachment.cs
- NameValueConfigurationElement.cs
- WebPartEditorCancelVerb.cs
- WindowsGraphics2.cs
- UrlPath.cs
- ExtensibleClassFactory.cs
- ConstraintManager.cs
- IpcClientManager.cs
- AutomationPatternInfo.cs
- TreeViewImageIndexConverter.cs
- EntityDataSourceDesigner.cs
- LazyInitializer.cs
- QueryCacheEntry.cs
- Base64Decoder.cs
- DispatcherObject.cs
- Console.cs
- Dictionary.cs
- ConnectionManagementSection.cs
- _NtlmClient.cs
- TemplateBindingExtensionConverter.cs
- NavigationWindowAutomationPeer.cs
- ColorKeyFrameCollection.cs
- RightsManagementEncryptedStream.cs
- HttpCacheVary.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- SqlClientWrapperSmiStreamChars.cs
- Activation.cs
- LinqDataSourceValidationException.cs
- MapPathBasedVirtualPathProvider.cs
- DataGridViewRowCancelEventArgs.cs
- XPathNodePointer.cs
- Span.cs
- ModuleBuilder.cs
- RequestCachePolicy.cs
- WindowsRichEdit.cs
- DataPagerFieldCollection.cs
- KeyInterop.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Vector3DValueSerializer.cs
- GraphicsState.cs
- ListViewGroup.cs
- DispatchChannelSink.cs
- XsdValidatingReader.cs
- TakeQueryOptionExpression.cs
- CompilationLock.cs
- RenderDataDrawingContext.cs
- SqlConnectionHelper.cs
- DataShape.cs
- ApplicationDirectory.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- sqlstateclientmanager.cs
- ClonableStack.cs
- HtmlElementErrorEventArgs.cs
- WebPartConnectionsEventArgs.cs
- DllNotFoundException.cs
- ConfigurationElementCollection.cs
- ProfilePropertySettingsCollection.cs
- ITreeGenerator.cs
- DSACryptoServiceProvider.cs
- WebPartMovingEventArgs.cs
- RepeatBehavior.cs