Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionaryString.cs / 1305376 / XmlDictionaryString.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Xml { using System; using System.Xml; using System.Text; using System.Diagnostics; using System.Runtime.Serialization; public class XmlDictionaryString { internal const int MinKey = 0; internal const int MaxKey = int.MaxValue / 4; IXmlDictionary dictionary; string value; int key; byte[] buffer; static EmptyStringDictionary emptyStringDictionary = new EmptyStringDictionary(); public XmlDictionaryString(IXmlDictionary dictionary, string value, int key) { if (dictionary == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("dictionary")); if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); if (key < MinKey || key > MaxKey) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("key", SR.GetString(SR.ValueMustBeInRange, MinKey, MaxKey))); this.dictionary = dictionary; this.value = value; this.key = key; } static internal string GetString(XmlDictionaryString s) { if (s == null) return null; return s.Value; } static public XmlDictionaryString Empty { get { return emptyStringDictionary.EmptyString; } } public IXmlDictionary Dictionary { get { return dictionary; } } public int Key { get { return key; } } public string Value { get { return value; } } internal byte[] ToUTF8() { if (buffer == null) buffer = System.Text.Encoding.UTF8.GetBytes(value); return buffer; } public override string ToString() { return value; } class EmptyStringDictionary : IXmlDictionary { XmlDictionaryString empty; public EmptyStringDictionary() { empty = new XmlDictionaryString(this, string.Empty, 0); } public XmlDictionaryString EmptyString { get { return empty; } } public bool TryLookup(string value, out XmlDictionaryString result) { if (value == null) throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value"); if (value.Length == 0) { result = empty; return true; } result = null; return false; } public bool TryLookup(int key, out XmlDictionaryString result) { if (key == 0) { result = empty; return true; } result = null; return false; } public 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; } } } } // 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
- ComponentRenameEvent.cs
- ClientSideQueueItem.cs
- SchemaElement.cs
- basevalidator.cs
- MD5CryptoServiceProvider.cs
- ApplicationTrust.cs
- ByteConverter.cs
- OdbcUtils.cs
- ToolStripDropDownClosingEventArgs.cs
- EntityCommandExecutionException.cs
- ListBoxItemWrapperAutomationPeer.cs
- ScriptResourceHandler.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ContextStack.cs
- AddressHeaderCollectionElement.cs
- Point3DCollectionConverter.cs
- FileRegion.cs
- ReferencedCollectionType.cs
- StructuredType.cs
- StandardOleMarshalObject.cs
- IisTraceListener.cs
- PointValueSerializer.cs
- WebPartConnectionsCancelVerb.cs
- ExtensionWindowResizeGrip.cs
- MultiPartWriter.cs
- PropertyStore.cs
- TypeDescriptionProvider.cs
- CssTextWriter.cs
- ControlType.cs
- ItemsControl.cs
- ContextMenu.cs
- BaseValidator.cs
- DataServiceQuery.cs
- MessageEncoder.cs
- SamlSecurityToken.cs
- ProxyWebPartManager.cs
- StickyNote.cs
- Registration.cs
- BitmapSourceSafeMILHandle.cs
- SqlWebEventProvider.cs
- MarkupProperty.cs
- XmlAtomErrorReader.cs
- FileFormatException.cs
- XmlComment.cs
- EdmScalarPropertyAttribute.cs
- RoleService.cs
- Point3DConverter.cs
- ZipIOExtraField.cs
- CodeConditionStatement.cs
- RouteParser.cs
- DateTimeValueSerializer.cs
- ValidationErrorCollection.cs
- Geometry.cs
- DataGridViewAccessibleObject.cs
- PenCursorManager.cs
- UnsafeNativeMethods.cs
- MissingSatelliteAssemblyException.cs
- FieldAccessException.cs
- TemplateColumn.cs
- IArgumentProvider.cs
- LiteralText.cs
- RectangleGeometry.cs
- OdbcInfoMessageEvent.cs
- Canvas.cs
- Hashtable.cs
- DesignTimeTemplateParser.cs
- XmlAggregates.cs
- XmlException.cs
- Margins.cs
- RtfFormatStack.cs
- WindowsNonControl.cs
- ToolStripSplitStackLayout.cs
- EditableRegion.cs
- XPathSelfQuery.cs
- HostProtectionException.cs
- StateMachineHelpers.cs
- MarkerProperties.cs
- OperationDescriptionCollection.cs
- RSACryptoServiceProvider.cs
- InternalTypeHelper.cs
- SHA512Cng.cs
- MutexSecurity.cs
- StatusBarAutomationPeer.cs
- DrawingCollection.cs
- WizardStepBase.cs
- SocketManager.cs
- BitSet.cs
- XmlUnspecifiedAttribute.cs
- SessionPageStateSection.cs
- ConfigurationManager.cs
- TypedReference.cs
- DataBinding.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- OneToOneMappingSerializer.cs
- CheckBox.cs
- Setter.cs
- NativeMethods.cs
- UpDownBase.cs
- Attributes.cs
- PrincipalPermission.cs