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
- SequenceRange.cs
- MimeWriter.cs
- Permission.cs
- ConfigurationPropertyAttribute.cs
- SqlFacetAttribute.cs
- EventHandlersStore.cs
- DataTablePropertyDescriptor.cs
- HandleCollector.cs
- Pkcs7Recipient.cs
- UnicastIPAddressInformationCollection.cs
- BufferedStream.cs
- BufferedOutputStream.cs
- BlurEffect.cs
- HtmlShimManager.cs
- SamlAssertion.cs
- DataGridViewSelectedCellCollection.cs
- ImplicitInputBrush.cs
- Script.cs
- PenLineJoinValidation.cs
- GenericUI.cs
- TempFiles.cs
- HashAlgorithm.cs
- SelectedCellsChangedEventArgs.cs
- GroupBox.cs
- ServiceParser.cs
- Events.cs
- WebException.cs
- DefinitionBase.cs
- OperationFormatUse.cs
- WindowsListBox.cs
- SiteMapHierarchicalDataSourceView.cs
- EventLogTraceListener.cs
- ToolStripPanelRow.cs
- ExpressionEditorAttribute.cs
- BinaryParser.cs
- StylusShape.cs
- ReturnEventArgs.cs
- FastEncoder.cs
- WinFormsUtils.cs
- LastQueryOperator.cs
- CompilerParameters.cs
- DataGridViewSortCompareEventArgs.cs
- StylusPointProperty.cs
- QilGeneratorEnv.cs
- CodeMethodReturnStatement.cs
- Cloud.cs
- WindowsAltTab.cs
- DefaultShape.cs
- ImmutableObjectAttribute.cs
- ButtonField.cs
- LayoutTable.cs
- Symbol.cs
- Roles.cs
- FrameworkTemplate.cs
- MessageTransmitTraceRecord.cs
- CodeTypeReference.cs
- NewItemsContextMenuStrip.cs
- TagMapInfo.cs
- GridEntry.cs
- EntityChangedParams.cs
- ObjectReferenceStack.cs
- ErrorView.xaml.cs
- PerfProviderCollection.cs
- LocalBuilder.cs
- EdmComplexTypeAttribute.cs
- ValidationManager.cs
- EntityDataSourceColumn.cs
- HtmlTextArea.cs
- TableRowCollection.cs
- StreamAsIStream.cs
- ToolStripDropDownItemDesigner.cs
- DeviceContext.cs
- MediaTimeline.cs
- HeaderCollection.cs
- XmlHierarchyData.cs
- ISO2022Encoding.cs
- BigInt.cs
- Visitors.cs
- TextSpan.cs
- DbConnectionPoolIdentity.cs
- LocalFileSettingsProvider.cs
- MetadataUtilsSmi.cs
- ListViewItemEventArgs.cs
- HasRunnableWorkflowEvent.cs
- VisualTreeUtils.cs
- FamilyMapCollection.cs
- ListViewDeletedEventArgs.cs
- RelatedCurrencyManager.cs
- COM2ICategorizePropertiesHandler.cs
- DataGridViewCellStyle.cs
- NativeMethods.cs
- Array.cs
- ServiceObjectContainer.cs
- ConfigurationPropertyCollection.cs
- InstanceCollisionException.cs
- precedingquery.cs
- Converter.cs
- Operand.cs
- MsmqHostedTransportConfiguration.cs
- SettingsAttributes.cs