Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionary.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MatcherBuilder.cs
- WebEventCodes.cs
- ProviderSettingsCollection.cs
- ResourceReferenceExpression.cs
- LinqDataSourceDisposeEventArgs.cs
- ObjectResult.cs
- XmlDictionaryWriter.cs
- BitmapPalette.cs
- OrCondition.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- FixedNode.cs
- __ConsoleStream.cs
- EventToken.cs
- ZipIOLocalFileHeader.cs
- EntityDataSourceEntityTypeFilterItem.cs
- SafeThreadHandle.cs
- FormDocumentDesigner.cs
- SiteMembershipCondition.cs
- Compiler.cs
- DbConnectionPoolGroup.cs
- CompositeDataBoundControl.cs
- RectConverter.cs
- PolyBezierSegment.cs
- ActivityCodeDomSerializer.cs
- SharedDp.cs
- KeyInterop.cs
- OpenTypeLayout.cs
- ExpressionBindingCollection.cs
- safex509handles.cs
- FormViewRow.cs
- CustomBinding.cs
- oledbmetadatacollectionnames.cs
- ContractMethodParameterInfo.cs
- DocumentPageHost.cs
- Control.cs
- DataGridItem.cs
- OleDbConnectionInternal.cs
- BCLDebug.cs
- SimpleType.cs
- SizeAnimationClockResource.cs
- PropertyInfo.cs
- WebPartConnectionsEventArgs.cs
- Assembly.cs
- WebPartTransformerAttribute.cs
- DefaultDiscoveryServiceExtension.cs
- DaylightTime.cs
- followingquery.cs
- CssStyleCollection.cs
- FileLevelControlBuilderAttribute.cs
- AmbiguousMatchException.cs
- IndexedString.cs
- FixedSOMTableCell.cs
- ForeignConstraint.cs
- Size3D.cs
- XmlSchemaImporter.cs
- ContractTypeNameElement.cs
- ApplyImportsAction.cs
- MeasureData.cs
- RelativeSource.cs
- WebCategoryAttribute.cs
- HybridObjectCache.cs
- NetTcpBindingElement.cs
- WindowsGraphics2.cs
- ViewKeyConstraint.cs
- OneWayChannelListener.cs
- ListItemsCollectionEditor.cs
- Enlistment.cs
- ServiceDescription.cs
- Grant.cs
- TableLayoutStyleCollection.cs
- MultipartContentParser.cs
- EventHandlingScope.cs
- XmlAutoDetectWriter.cs
- Merger.cs
- ValidationEventArgs.cs
- UIElement3D.cs
- HtmlTableRowCollection.cs
- XmlSchemaComplexContent.cs
- PlaceHolder.cs
- QilReplaceVisitor.cs
- FlowDocumentFormatter.cs
- Help.cs
- PersonalizationAdministration.cs
- JoinGraph.cs
- CompilationPass2Task.cs
- FixUpCollection.cs
- SqlWebEventProvider.cs
- SevenBitStream.cs
- NodeFunctions.cs
- DateTimeOffset.cs
- XmlSchemaGroup.cs
- XmlSchemaComplexContent.cs
- Condition.cs
- ListGeneralPage.cs
- MachineKeySection.cs
- WsatExtendedInformation.cs
- MoveSizeWinEventHandler.cs
- DataGridBoolColumn.cs
- ExpressionBuilderContext.cs
- Semaphore.cs