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
- ObjectStateFormatter.cs
- SemanticBasicElement.cs
- TextFragmentEngine.cs
- Resources.Designer.cs
- SHA384CryptoServiceProvider.cs
- StateDesigner.TransitionInfo.cs
- XmlRawWriter.cs
- DataBinding.cs
- TogglePattern.cs
- XmlRootAttribute.cs
- NeutralResourcesLanguageAttribute.cs
- DataListCommandEventArgs.cs
- DataGridViewSelectedRowCollection.cs
- BrowserCapabilitiesCompiler.cs
- WorkflowPersistenceContext.cs
- Win32.cs
- ExceptionUtil.cs
- MaskDescriptor.cs
- Semaphore.cs
- SplineKeyFrames.cs
- DesignerHelpers.cs
- PopupRoot.cs
- MouseGestureConverter.cs
- TextTreePropertyUndoUnit.cs
- CompareInfo.cs
- CheckBoxRenderer.cs
- Triplet.cs
- BaseDataBoundControlDesigner.cs
- HyperLinkStyle.cs
- HtmlTextArea.cs
- _Events.cs
- HttpFileCollection.cs
- GuidelineSet.cs
- XmlSchemaSimpleContentExtension.cs
- XPathParser.cs
- AlgoModule.cs
- InheritanceContextChangedEventManager.cs
- DeploymentSectionCache.cs
- DeviceContext2.cs
- UpdateExpressionVisitor.cs
- __ComObject.cs
- ConditionalExpression.cs
- TimeZone.cs
- ListViewInsertionMark.cs
- ParentQuery.cs
- SetterBaseCollection.cs
- ProxyAttribute.cs
- Matrix3DStack.cs
- GridViewItemAutomationPeer.cs
- StyleConverter.cs
- HttpHandlerAction.cs
- FixedSOMContainer.cs
- GenerateScriptTypeAttribute.cs
- FormViewUpdatedEventArgs.cs
- JournalEntryStack.cs
- Model3DCollection.cs
- SchemaContext.cs
- ContextStack.cs
- ValidationResult.cs
- LayoutDump.cs
- Light.cs
- SchemaNotation.cs
- SqlProcedureAttribute.cs
- DBConnection.cs
- ConfigurationStrings.cs
- CapabilitiesUse.cs
- TemplateBuilder.cs
- GridViewCancelEditEventArgs.cs
- RefExpr.cs
- HtmlTableRowCollection.cs
- DbRetry.cs
- ClientConfigPaths.cs
- Document.cs
- FlowDocument.cs
- PenThreadWorker.cs
- ItemCheckEvent.cs
- ClrPerspective.cs
- SerializationSectionGroup.cs
- HttpServerChannel.cs
- SelectionItemProviderWrapper.cs
- HitTestDrawingContextWalker.cs
- WebMessageEncodingBindingElement.cs
- PagedDataSource.cs
- PlainXmlSerializer.cs
- DbProviderFactoriesConfigurationHandler.cs
- AddInDeploymentState.cs
- ListBindingHelper.cs
- EntityKey.cs
- ProfilePropertySettingsCollection.cs
- DelimitedListTraceListener.cs
- BaseTreeIterator.cs
- WaitHandleCannotBeOpenedException.cs
- FacetChecker.cs
- FileDataSourceCache.cs
- BrowserCapabilitiesFactory.cs
- ConnectionStringsSection.cs
- BindingListCollectionView.cs
- LOSFormatter.cs
- AccessDataSource.cs
- HtmlControlDesigner.cs