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
- TrackingProfile.cs
- StringArrayConverter.cs
- ChangePassword.cs
- SoapSchemaImporter.cs
- QueryPageSettingsEventArgs.cs
- CompilerError.cs
- XmlNotation.cs
- Visitor.cs
- SmtpNtlmAuthenticationModule.cs
- RecordsAffectedEventArgs.cs
- InstalledFontCollection.cs
- _NetworkingPerfCounters.cs
- RelationalExpressions.cs
- GreenMethods.cs
- TraceEventCache.cs
- BufferedStream.cs
- NativeActivityMetadata.cs
- SetUserLanguageRequest.cs
- SrgsOneOf.cs
- MsmqHostedTransportConfiguration.cs
- AddInEnvironment.cs
- FlagPanel.cs
- ChangeNode.cs
- NonParentingControl.cs
- ItemContainerGenerator.cs
- PeerNearMe.cs
- SamlSubject.cs
- PermissionSetEnumerator.cs
- MailMessageEventArgs.cs
- TimeSpanFormat.cs
- CurrencyManager.cs
- BamlRecordHelper.cs
- WmfPlaceableFileHeader.cs
- MaskDescriptor.cs
- TimersDescriptionAttribute.cs
- TrackingDataItem.cs
- WebDescriptionAttribute.cs
- TreeNodeStyle.cs
- TrustSection.cs
- FixedSOMGroup.cs
- WindowsFormsSynchronizationContext.cs
- Model3DCollection.cs
- DataGridViewImageColumn.cs
- FilteredAttributeCollection.cs
- EditorZone.cs
- EntityProviderServices.cs
- AccessDataSource.cs
- FilteredDataSetHelper.cs
- DesignTimeVisibleAttribute.cs
- Input.cs
- SpecularMaterial.cs
- OracleParameterCollection.cs
- XmlSchemaObjectTable.cs
- DataPagerFieldItem.cs
- WindowsNonControl.cs
- FormViewInsertEventArgs.cs
- ContentType.cs
- DataServiceQueryException.cs
- TextEditorCopyPaste.cs
- XPathNavigatorKeyComparer.cs
- VisualBrush.cs
- ModelItemKeyValuePair.cs
- EntityContainerEmitter.cs
- PathFigure.cs
- HashCodeCombiner.cs
- Baml2006ReaderSettings.cs
- PropertyDescriptorCollection.cs
- Flowchart.cs
- SerialStream.cs
- TraceUtility.cs
- Pointer.cs
- FormView.cs
- AssemblyCollection.cs
- Debug.cs
- ResourcesBuildProvider.cs
- SqlColumnizer.cs
- SqlDataSourceCustomCommandEditor.cs
- StackSpiller.Bindings.cs
- ParameterEditorUserControl.cs
- XPathQilFactory.cs
- XmlnsDefinitionAttribute.cs
- ConfigurationStrings.cs
- StylusButtonEventArgs.cs
- DataGrid.cs
- Solver.cs
- DataTablePropertyDescriptor.cs
- KnownBoxes.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- OracleConnectionStringBuilder.cs
- PieceDirectory.cs
- UriParserTemplates.cs
- MulticastOption.cs
- HasCopySemanticsAttribute.cs
- MenuRenderer.cs
- SystemIcons.cs
- SoapInteropTypes.cs
- FontDialog.cs
- DependencyPropertyAttribute.cs
- ObjectSet.cs
- SymbolDocumentGenerator.cs