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
- ArrayItemReference.cs
- ObservableCollection.cs
- ColorTransformHelper.cs
- AuthenticatedStream.cs
- WindowProviderWrapper.cs
- serverconfig.cs
- ReflectionServiceProvider.cs
- DateTimeParse.cs
- SoapHttpTransportImporter.cs
- WebReferencesBuildProvider.cs
- OdbcConnectionHandle.cs
- TextTabProperties.cs
- ConfigurationUtility.cs
- EDesignUtil.cs
- DataGridPagerStyle.cs
- Variant.cs
- UnicastIPAddressInformationCollection.cs
- DataGridViewCellFormattingEventArgs.cs
- CodeVariableReferenceExpression.cs
- CapabilitiesRule.cs
- ProcessHostConfigUtils.cs
- FormViewDeleteEventArgs.cs
- DataKeyCollection.cs
- OrderPreservingPipeliningMergeHelper.cs
- DataGridViewImageColumn.cs
- XPathBuilder.cs
- DeferredTextReference.cs
- Oci.cs
- ToolboxComponentsCreatedEventArgs.cs
- ToolStripDropDownItem.cs
- StructuredTypeInfo.cs
- LineVisual.cs
- SecurityTokenException.cs
- DBSchemaRow.cs
- WindowsToolbarItemAsMenuItem.cs
- ClientUrlResolverWrapper.cs
- FontWeights.cs
- altserialization.cs
- WindowsContainer.cs
- BindingValueChangedEventArgs.cs
- DataSet.cs
- DynamicPropertyHolder.cs
- AxDesigner.cs
- AdCreatedEventArgs.cs
- MemoryPressure.cs
- CleanUpVirtualizedItemEventArgs.cs
- EmptyControlCollection.cs
- LoaderAllocator.cs
- WebUtil.cs
- CompositeTypefaceMetrics.cs
- TextEditorParagraphs.cs
- DataGridViewBindingCompleteEventArgs.cs
- FilterableAttribute.cs
- SoundPlayerAction.cs
- UnsafeNativeMethodsCLR.cs
- EmptyElement.cs
- Baml2006SchemaContext.cs
- PointLightBase.cs
- HandlerBase.cs
- UnsupportedPolicyOptionsException.cs
- EncodingNLS.cs
- DataSourceExpressionCollection.cs
- NativeMethods.cs
- LinqDataSourceView.cs
- BinarySerializer.cs
- _DigestClient.cs
- ArcSegment.cs
- MgmtConfigurationRecord.cs
- HierarchicalDataSourceIDConverter.cs
- XmlAtomicValue.cs
- InertiaRotationBehavior.cs
- DataGridViewRow.cs
- PathTooLongException.cs
- DataColumn.cs
- WindowsClientCredential.cs
- RewritingSimplifier.cs
- SafeNativeMethods.cs
- EmptyControlCollection.cs
- CounterSampleCalculator.cs
- StorageSetMapping.cs
- controlskin.cs
- MessageBox.cs
- BuildProviderAppliesToAttribute.cs
- DoubleStorage.cs
- PageCache.cs
- ToolStripOverflow.cs
- AvtEvent.cs
- httpstaticobjectscollection.cs
- EntityContainerRelationshipSetEnd.cs
- XmlDictionaryString.cs
- SerializableAttribute.cs
- GenericAuthenticationEventArgs.cs
- updatecommandorderer.cs
- BodyGlyph.cs
- ListViewItemMouseHoverEvent.cs
- DynamicMetaObjectBinder.cs
- SrgsRulesCollection.cs
- RestHandlerFactory.cs
- Types.cs
- shaper.cs