Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- FormsAuthenticationConfiguration.cs
- VerificationAttribute.cs
- HttpRuntime.cs
- Encoder.cs
- Utils.cs
- figurelengthconverter.cs
- UniqueEventHelper.cs
- TypedElement.cs
- XmlNullResolver.cs
- SecurityTokenTypes.cs
- OperatingSystem.cs
- WebBrowserUriTypeConverter.cs
- Compiler.cs
- EmbeddedMailObjectsCollection.cs
- DataGridLinkButton.cs
- TdsValueSetter.cs
- HttpConfigurationContext.cs
- PropertyPathConverter.cs
- DataColumnCollection.cs
- PrincipalPermission.cs
- RadioButton.cs
- FontConverter.cs
- OleDbCommand.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- PublishLicense.cs
- SecurityProtocolFactory.cs
- StateMachineDesignerPaint.cs
- DispatcherSynchronizationContext.cs
- EventEntry.cs
- SessionStateContainer.cs
- PointIndependentAnimationStorage.cs
- DSACryptoServiceProvider.cs
- UnauthorizedWebPart.cs
- messageonlyhwndwrapper.cs
- DebuggerAttributes.cs
- PreservationFileReader.cs
- SplineKeyFrames.cs
- Border.cs
- SoapHeaders.cs
- DesignerDeviceConfig.cs
- TextTreeObjectNode.cs
- ToolStripSplitButton.cs
- ApplicationInterop.cs
- PatternMatcher.cs
- IndexedEnumerable.cs
- ZipIOLocalFileDataDescriptor.cs
- DataTemplateKey.cs
- SoapEnumAttribute.cs
- SubstitutionList.cs
- PathTooLongException.cs
- IPAddress.cs
- XPathNodeInfoAtom.cs
- HtmlDocument.cs
- ResourceReferenceExpressionConverter.cs
- DependencyPropertyDescriptor.cs
- BulletedList.cs
- AddInEnvironment.cs
- IgnorePropertiesAttribute.cs
- SelectedPathEditor.cs
- TemplateControlCodeDomTreeGenerator.cs
- InternalMappingException.cs
- EventLogRecord.cs
- TextEditorMouse.cs
- CriticalHandle.cs
- FlagsAttribute.cs
- MultiBinding.cs
- ExpressionBindingCollection.cs
- ChannelSinkStacks.cs
- MarshalDirectiveException.cs
- ObjectParameterCollection.cs
- Timer.cs
- StringUtil.cs
- HelpKeywordAttribute.cs
- SoapExtensionTypeElementCollection.cs
- LineSegment.cs
- HttpServerUtilityBase.cs
- WebEncodingValidatorAttribute.cs
- AxHostDesigner.cs
- DuplicateWaitObjectException.cs
- CaseExpr.cs
- AmbientLight.cs
- XmlAnyElementAttribute.cs
- ObjectRef.cs
- DirectoryObjectSecurity.cs
- CheckBoxList.cs
- InfoCardCryptoHelper.cs
- XPathDescendantIterator.cs
- AuthenticationModulesSection.cs
- DataGridViewTextBoxEditingControl.cs
- SqlServices.cs
- BindingRestrictions.cs
- ExtensionElement.cs
- ImageListStreamer.cs
- MissingFieldException.cs
- embossbitmapeffect.cs
- RegexGroupCollection.cs
- VisualBasicReference.cs
- MappedMetaModel.cs
- HealthMonitoringSectionHelper.cs
- DataGridViewTopLeftHeaderCell.cs