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
- ColorConvertedBitmap.cs
- Freezable.cs
- QilValidationVisitor.cs
- TypeRefElement.cs
- WebContentFormatHelper.cs
- TableLayoutSettingsTypeConverter.cs
- InputBuffer.cs
- DataGridTablesFactory.cs
- OdbcDataAdapter.cs
- _WebProxyDataBuilder.cs
- Soap12ServerProtocol.cs
- ClientUtils.cs
- ReadOnlyTernaryTree.cs
- AsyncContentLoadedEventArgs.cs
- HwndSubclass.cs
- UIElement3DAutomationPeer.cs
- TrackingServices.cs
- CapabilitiesUse.cs
- EventMappingSettingsCollection.cs
- ParentQuery.cs
- PropertyKey.cs
- ContextDataSourceContextData.cs
- Profiler.cs
- DeclaredTypeValidatorAttribute.cs
- AudioDeviceOut.cs
- HtmlTextArea.cs
- Tablet.cs
- Pair.cs
- SiteMapNodeItemEventArgs.cs
- ResourceReferenceExpressionConverter.cs
- TextEncodedRawTextWriter.cs
- MSAAEventDispatcher.cs
- XsltArgumentList.cs
- FontCacheUtil.cs
- TypeElementCollection.cs
- XmlSchemas.cs
- TextSelectionHighlightLayer.cs
- CompiledRegexRunner.cs
- RelativeSource.cs
- WindowInteropHelper.cs
- WmfPlaceableFileHeader.cs
- PageParserFilter.cs
- NameSpaceExtractor.cs
- VisualTarget.cs
- ToolZone.cs
- TraceListeners.cs
- ThaiBuddhistCalendar.cs
- HttpCachePolicyElement.cs
- ExtendedProtectionPolicyElement.cs
- MatrixTransform3D.cs
- CompilationLock.cs
- DataList.cs
- HtmlInputPassword.cs
- PromptEventArgs.cs
- RotateTransform3D.cs
- TargetFrameworkUtil.cs
- DataServiceExpressionVisitor.cs
- StorageAssociationTypeMapping.cs
- TreeNodeCollection.cs
- TextElement.cs
- MultiTrigger.cs
- WebExceptionStatus.cs
- XmlParserContext.cs
- XmlDsigSep2000.cs
- NamedElement.cs
- TextBlockAutomationPeer.cs
- XmlAnyElementAttribute.cs
- MemberMemberBinding.cs
- SqlVisitor.cs
- PropertyDescriptorCollection.cs
- FixedPageStructure.cs
- UIElement.cs
- FontFamilyConverter.cs
- FloaterParagraph.cs
- RowToParametersTransformer.cs
- LingerOption.cs
- SHA512CryptoServiceProvider.cs
- FontSourceCollection.cs
- SystemFonts.cs
- ForwardPositionQuery.cs
- QueryConverter.cs
- Nullable.cs
- SectionInformation.cs
- ColorContext.cs
- Selector.cs
- PageThemeCodeDomTreeGenerator.cs
- JoinElimination.cs
- HijriCalendar.cs
- MobileTemplatedControlDesigner.cs
- ConstraintEnumerator.cs
- RadioButtonPopupAdapter.cs
- Operators.cs
- AddingNewEventArgs.cs
- MediaElement.cs
- Material.cs
- PropertyChangeTracker.cs
- BeginEvent.cs
- WsatConfiguration.cs
- MultiView.cs
- ProviderConnectionPointCollection.cs