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
- StyleSheetRefUrlEditor.cs
- StreamGeometryContext.cs
- TimeSpanSecondsConverter.cs
- PersonalizationProviderCollection.cs
- ColorContextHelper.cs
- UnsafeNativeMethods.cs
- AuthorizationRuleCollection.cs
- CodeExpressionCollection.cs
- BufferedStream.cs
- X509SubjectKeyIdentifierClause.cs
- LinkConverter.cs
- NeedSkipTokenVisitor.cs
- Propagator.JoinPropagator.cs
- TextDpi.cs
- NativeCompoundFileAPIs.cs
- Binding.cs
- ExtendedPropertyDescriptor.cs
- PackageDocument.cs
- MessageEventSubscriptionService.cs
- Control.cs
- WizardPanel.cs
- HealthMonitoringSection.cs
- XmlSerializerOperationFormatter.cs
- DotExpr.cs
- MemberAssignmentAnalysis.cs
- UpdateDelegates.Generated.cs
- XmlSchemaSubstitutionGroup.cs
- SecUtil.cs
- XmlDeclaration.cs
- StructuralType.cs
- Variable.cs
- Int16Converter.cs
- WebPart.cs
- MobileFormsAuthentication.cs
- XmlSignatureManifest.cs
- DependencyObjectPropertyDescriptor.cs
- CrossAppDomainChannel.cs
- LoadRetryHandler.cs
- XamlFilter.cs
- DbException.cs
- RepeaterItem.cs
- SharedConnectionInfo.cs
- MemberCollection.cs
- SignatureHelper.cs
- AssemblyFilter.cs
- UriParserTemplates.cs
- ObjectNavigationPropertyMapping.cs
- SafePointer.cs
- CodeIdentifier.cs
- WindowsAltTab.cs
- DataControlFieldCell.cs
- EncoderParameter.cs
- Set.cs
- DataObjectFieldAttribute.cs
- SeparatorAutomationPeer.cs
- Object.cs
- EdmToObjectNamespaceMap.cs
- PageParserFilter.cs
- ImpersonateTokenRef.cs
- TimeStampChecker.cs
- DecoderNLS.cs
- WizardStepCollectionEditor.cs
- SoapMessage.cs
- SimpleExpression.cs
- DefaultAsyncDataDispatcher.cs
- dtdvalidator.cs
- WebReferencesBuildProvider.cs
- HttpConfigurationContext.cs
- SeekableMessageNavigator.cs
- ObjectQueryExecutionPlan.cs
- EntityProviderFactory.cs
- DivideByZeroException.cs
- HtmlInputControl.cs
- UnicastIPAddressInformationCollection.cs
- ClientScriptManager.cs
- CreationContext.cs
- IncrementalHitTester.cs
- ComplexType.cs
- MessageLoggingFilterTraceRecord.cs
- ModelPerspective.cs
- EdgeModeValidation.cs
- UdpRetransmissionSettings.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- UIntPtr.cs
- WebPartEditorOkVerb.cs
- WindowsTooltip.cs
- CopyOnWriteList.cs
- TaskExtensions.cs
- CheckBox.cs
- Executor.cs
- QueryStringParameter.cs
- VisualStyleInformation.cs
- ColorIndependentAnimationStorage.cs
- StringUtil.cs
- Token.cs
- FontNamesConverter.cs
- _SslState.cs
- XmlDownloadManager.cs
- MessagePartSpecification.cs
- WebResourceAttribute.cs