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
- Hashtable.cs
- Point3DCollection.cs
- TransportContext.cs
- RegexReplacement.cs
- InteropAutomationProvider.cs
- ScriptBehaviorDescriptor.cs
- XmlSchemaAnyAttribute.cs
- StylusLogic.cs
- DispatcherFrame.cs
- FormViewInsertEventArgs.cs
- AssociationType.cs
- FileLoadException.cs
- SettingsBindableAttribute.cs
- InvokeBase.cs
- XhtmlBasicTextViewAdapter.cs
- DisplayNameAttribute.cs
- DataListDesigner.cs
- TaiwanLunisolarCalendar.cs
- RadioButtonBaseAdapter.cs
- DataGridClipboardCellContent.cs
- GroupQuery.cs
- Version.cs
- ToolStripDropTargetManager.cs
- ObjectSet.cs
- SynchronizedRandom.cs
- ProfileParameter.cs
- CharacterShapingProperties.cs
- DataGridTablesFactory.cs
- HtmlAnchor.cs
- Freezable.cs
- ConstraintStruct.cs
- TrustManager.cs
- DoubleLinkListEnumerator.cs
- QilCloneVisitor.cs
- TaskHelper.cs
- ExternalFile.cs
- IDispatchConstantAttribute.cs
- Accessible.cs
- KeyboardEventArgs.cs
- WCFServiceClientProxyGenerator.cs
- BasicViewGenerator.cs
- ExpressionPrefixAttribute.cs
- ipaddressinformationcollection.cs
- X509CertificateStore.cs
- EditorPartCollection.cs
- TokenDescriptor.cs
- SystemResourceKey.cs
- CSharpCodeProvider.cs
- SingleSelectRootGridEntry.cs
- DataGridViewCellEventArgs.cs
- QuaternionRotation3D.cs
- ToolStripPanelDesigner.cs
- BamlLocalizableResource.cs
- RowToFieldTransformer.cs
- ServiceNameElement.cs
- CheckPair.cs
- MarkupExtensionParser.cs
- KeyedCollection.cs
- updatecommandorderer.cs
- CmsUtils.cs
- _DisconnectOverlappedAsyncResult.cs
- HandlerFactoryWrapper.cs
- SqlUDTStorage.cs
- SqlRewriteScalarSubqueries.cs
- Soap.cs
- ColorTransformHelper.cs
- StorageMappingItemLoader.cs
- DbConnectionFactory.cs
- SQLBytesStorage.cs
- Vector3DKeyFrameCollection.cs
- XsltSettings.cs
- OleDbInfoMessageEvent.cs
- DetailsViewPageEventArgs.cs
- TreePrinter.cs
- KnownAssemblyEntry.cs
- WebPartDisplayModeEventArgs.cs
- TimelineGroup.cs
- GAC.cs
- DataGridViewRowCollection.cs
- OperationInfoBase.cs
- PermissionToken.cs
- Pair.cs
- RequestQueue.cs
- NetPeerTcpBindingCollectionElement.cs
- FreezableCollection.cs
- OpacityConverter.cs
- ListViewItem.cs
- WsdlServiceChannelBuilder.cs
- WebPartCancelEventArgs.cs
- MessageHeaderDescriptionCollection.cs
- ClientSettings.cs
- Facet.cs
- URLIdentityPermission.cs
- MemberInfoSerializationHolder.cs
- LZCodec.cs
- SmiGettersStream.cs
- DataColumnPropertyDescriptor.cs
- ListChangedEventArgs.cs
- serverconfig.cs
- ToolboxCategoryItems.cs