Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Xml / XmlDictionaryString.cs / 1 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XPathDescendantIterator.cs
- DtrList.cs
- RoutingBehavior.cs
- XPathBuilder.cs
- EmptyEnumerable.cs
- HttpStreamMessage.cs
- ModelUIElement3D.cs
- QueryCacheEntry.cs
- _AuthenticationState.cs
- OdbcFactory.cs
- _IPv4Address.cs
- Quack.cs
- CodeTypeParameterCollection.cs
- TagPrefixCollection.cs
- DoubleIndependentAnimationStorage.cs
- LazyInitializer.cs
- ExpressionEditor.cs
- TypeListConverter.cs
- Color.cs
- DataGridViewRowsAddedEventArgs.cs
- InputProcessorProfiles.cs
- Soap11ServerProtocol.cs
- XmlName.cs
- SoapServerMessage.cs
- DataGridPagingPage.cs
- Baml6ConstructorInfo.cs
- InternalBase.cs
- SQLInt64Storage.cs
- ReadWriteObjectLock.cs
- SafeProcessHandle.cs
- ImportFileRequest.cs
- X509Certificate2.cs
- WebBrowser.cs
- dataobject.cs
- DelegateSerializationHolder.cs
- SchemaAttDef.cs
- SystemKeyConverter.cs
- CrossContextChannel.cs
- FrameSecurityDescriptor.cs
- HttpProcessUtility.cs
- SvcMapFileLoader.cs
- WsdlImporterElement.cs
- EndOfStreamException.cs
- NumericExpr.cs
- PartialCachingAttribute.cs
- SchemaSetCompiler.cs
- ConditionChanges.cs
- SkipQueryOptionExpression.cs
- DbMetaDataCollectionNames.cs
- TableLayoutColumnStyleCollection.cs
- CreateWorkflowOwnerCommand.cs
- Preprocessor.cs
- X509Certificate.cs
- ToolboxDataAttribute.cs
- ContentPlaceHolder.cs
- ListView.cs
- WorkflowRuntime.cs
- ComplexObject.cs
- StringConverter.cs
- TextBreakpoint.cs
- XPathDocumentBuilder.cs
- OdbcConnectionPoolProviderInfo.cs
- Pair.cs
- StorageTypeMapping.cs
- TimeSpanConverter.cs
- OutKeywords.cs
- ServiceObjectContainer.cs
- InteropExecutor.cs
- DoubleLinkListEnumerator.cs
- CheckBoxField.cs
- Compiler.cs
- HijriCalendar.cs
- CloseSequence.cs
- ToggleButton.cs
- PropertyPathWorker.cs
- EdmError.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- FontDriver.cs
- StreamMarshaler.cs
- IDictionary.cs
- ADConnectionHelper.cs
- DBNull.cs
- DetailsViewDeleteEventArgs.cs
- PrintingPermissionAttribute.cs
- DetailsViewInsertedEventArgs.cs
- DoubleLinkListEnumerator.cs
- EndpointConfigContainer.cs
- HtmlMeta.cs
- DrawingContext.cs
- SafeSecurityHelper.cs
- TextEditorCharacters.cs
- SafeNativeMethods.cs
- UrlMappingCollection.cs
- XmlUtilWriter.cs
- TemplateKey.cs
- CLSCompliantAttribute.cs
- ObjectDataSourceEventArgs.cs
- DataObjectSettingDataEventArgs.cs
- MeasureData.cs
- SoapExtensionImporter.cs