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
- Pair.cs
- StreamInfo.cs
- Propagator.JoinPropagator.cs
- safesecurityhelperavalon.cs
- SchemaImporter.cs
- MethodCallTranslator.cs
- TokenBasedSet.cs
- EndPoint.cs
- ScopeCompiler.cs
- LayoutDump.cs
- ArglessEventHandlerProxy.cs
- _NativeSSPI.cs
- VirtualDirectoryMapping.cs
- GradientStop.cs
- GroupLabel.cs
- SqlProviderUtilities.cs
- DefinitionBase.cs
- BypassElement.cs
- ListViewTableCell.cs
- GridSplitterAutomationPeer.cs
- CultureSpecificStringDictionary.cs
- FreezableCollection.cs
- WebDisplayNameAttribute.cs
- dbenumerator.cs
- OracleParameterCollection.cs
- PropertyNames.cs
- DataRowView.cs
- VirtualizingStackPanel.cs
- TextRunProperties.cs
- DataGridCellsPanel.cs
- TreeNodeStyleCollection.cs
- UICuesEvent.cs
- FontSource.cs
- CodeMemberField.cs
- FormatControl.cs
- NativeCompoundFileAPIs.cs
- StatusBarItemAutomationPeer.cs
- DataGridViewRowHeaderCell.cs
- VisualTreeFlattener.cs
- Model3DGroup.cs
- BuildProvider.cs
- UpdateException.cs
- PassportAuthenticationEventArgs.cs
- PasswordRecoveryDesigner.cs
- SignatureToken.cs
- XmlAnyAttributeAttribute.cs
- CompiledELinqQueryState.cs
- SapiRecoInterop.cs
- linebase.cs
- DependencyPropertyDescriptor.cs
- UrlMappingCollection.cs
- sitestring.cs
- _ConnectStream.cs
- __ComObject.cs
- DataFieldCollectionEditor.cs
- PermissionSet.cs
- LinqDataSource.cs
- StylusDownEventArgs.cs
- COM2TypeInfoProcessor.cs
- MultiAsyncResult.cs
- SerialStream.cs
- MetadataReference.cs
- ClientSideProviderDescription.cs
- NetPeerTcpBinding.cs
- OlePropertyStructs.cs
- indexingfiltermarshaler.cs
- FrameworkContentElement.cs
- TileModeValidation.cs
- SpecialNameAttribute.cs
- CodeObjectCreateExpression.cs
- Matrix3DStack.cs
- ConfigurationSection.cs
- DependencySource.cs
- DataSourceGeneratorException.cs
- DBNull.cs
- TextFindEngine.cs
- SkewTransform.cs
- TitleStyle.cs
- ComponentChangingEvent.cs
- NumericPagerField.cs
- DbProviderManifest.cs
- SessionStateUtil.cs
- CodeChecksumPragma.cs
- UriPrefixTable.cs
- CodeDOMUtility.cs
- ValidationError.cs
- TreeWalkHelper.cs
- XmlTextReaderImplHelpers.cs
- IImplicitResourceProvider.cs
- DXD.cs
- OdbcDataAdapter.cs
- ParameterCollection.cs
- CqlParser.cs
- ExpressionEditorSheet.cs
- ClickablePoint.cs
- TrackingStringDictionary.cs
- Lasso.cs
- _ListenerAsyncResult.cs
- DataRowChangeEvent.cs
- SoapFormatter.cs