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
- StructuredTypeEmitter.cs
- FontStyle.cs
- CheckBoxDesigner.cs
- UserValidatedEventArgs.cs
- CodeArgumentReferenceExpression.cs
- DataGridBoolColumn.cs
- XappLauncher.cs
- TypefaceMap.cs
- StateRuntime.cs
- SelectionRange.cs
- PolyLineSegment.cs
- CellRelation.cs
- StructuredType.cs
- SiteMap.cs
- ComPlusTypeValidator.cs
- BlobPersonalizationState.cs
- SeverityFilter.cs
- WeakReadOnlyCollection.cs
- _OSSOCK.cs
- WindowsFormsLinkLabel.cs
- OleDbConnection.cs
- EllipticalNodeOperations.cs
- _TransmitFileOverlappedAsyncResult.cs
- BrowserDefinition.cs
- DPAPIProtectedConfigurationProvider.cs
- TextDecorationLocationValidation.cs
- SimpleColumnProvider.cs
- SelectionEditor.cs
- ColorMatrix.cs
- ExtentJoinTreeNode.cs
- Label.cs
- TransportChannelListener.cs
- SyntaxCheck.cs
- MultitargetingHelpers.cs
- MemoryMappedFile.cs
- DataRelation.cs
- BaseResourcesBuildProvider.cs
- KeysConverter.cs
- FlowDocumentReaderAutomationPeer.cs
- ObjectMemberMapping.cs
- WorkItem.cs
- Regex.cs
- ScriptRegistrationManager.cs
- VirtualPath.cs
- DataGridTable.cs
- FormViewInsertEventArgs.cs
- SemanticTag.cs
- AttachedPropertyMethodSelector.cs
- DataServiceContext.cs
- XmlSchemaChoice.cs
- LocatorGroup.cs
- HorizontalAlignConverter.cs
- GrammarBuilderBase.cs
- FileLoadException.cs
- SqlNodeAnnotations.cs
- KeyFrames.cs
- ButtonFieldBase.cs
- SendingRequestEventArgs.cs
- CryptoKeySecurity.cs
- WorkBatch.cs
- CodeStatementCollection.cs
- EdmConstants.cs
- ValueSerializer.cs
- RegisteredArrayDeclaration.cs
- FilteredDataSetHelper.cs
- Crc32.cs
- NativeMethodsOther.cs
- IdnMapping.cs
- CodeDelegateInvokeExpression.cs
- RemotingServices.cs
- EncoderNLS.cs
- EventWaitHandle.cs
- PagesChangedEventArgs.cs
- FastPropertyAccessor.cs
- StandardToolWindows.cs
- FileEnumerator.cs
- ProjectedSlot.cs
- EntityDataReader.cs
- ArglessEventHandlerProxy.cs
- ObfuscationAttribute.cs
- ToolboxComponentsCreatingEventArgs.cs
- ApplicationContext.cs
- OutOfMemoryException.cs
- XmlSchemaDatatype.cs
- IntranetCredentialPolicy.cs
- SafeFindHandle.cs
- PeerObject.cs
- ChineseLunisolarCalendar.cs
- OdbcParameterCollection.cs
- NumberFormatter.cs
- OrderByExpression.cs
- ToolStripOverflowButton.cs
- WebControlsSection.cs
- TextServicesDisplayAttributePropertyRanges.cs
- WmlImageAdapter.cs
- SchemaTypeEmitter.cs
- DoubleAnimationUsingPath.cs
- XmlDataProvider.cs
- Base64Encoder.cs
- BaseValidatorDesigner.cs