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
- UpdateManifestForBrowserApplication.cs
- MultiTouchSystemGestureLogic.cs
- BridgeDataRecord.cs
- OleDbPermission.cs
- LogStore.cs
- ToolStripItemRenderEventArgs.cs
- PropertyEmitterBase.cs
- ActivityTypeCodeDomSerializer.cs
- BamlRecords.cs
- UrlAuthFailedErrorFormatter.cs
- AmbientLight.cs
- HtmlMeta.cs
- ProtocolsConfigurationEntry.cs
- RotationValidation.cs
- Preprocessor.cs
- EnumerationRangeValidationUtil.cs
- UTF7Encoding.cs
- ContentType.cs
- FormViewRow.cs
- SimpleMailWebEventProvider.cs
- Range.cs
- FileSecurity.cs
- RegexStringValidator.cs
- Int16KeyFrameCollection.cs
- GuidelineSet.cs
- DataControlLinkButton.cs
- BridgeDataRecord.cs
- XamlSerializer.cs
- RelationalExpressions.cs
- Pointer.cs
- DataGridColumn.cs
- PropertyManager.cs
- StreamGeometry.cs
- EastAsianLunisolarCalendar.cs
- ReadOnlyKeyedCollection.cs
- BoundingRectTracker.cs
- PathSegmentCollection.cs
- ParagraphVisual.cs
- KeysConverter.cs
- DataGridViewIntLinkedList.cs
- XmlSchemaRedefine.cs
- ApplicationServiceManager.cs
- LayoutEngine.cs
- StringResourceManager.cs
- NetworkStream.cs
- PagedDataSource.cs
- ObjectDataSourceDesigner.cs
- SynchronizationContext.cs
- XPathSelfQuery.cs
- StorageBasedPackageProperties.cs
- LOSFormatter.cs
- BooleanProjectedSlot.cs
- ConstrainedDataObject.cs
- RepeatInfo.cs
- UriParserTemplates.cs
- ConsoleTraceListener.cs
- Visual3D.cs
- SplineKeyFrames.cs
- WindowManager.cs
- DynamicActivityProperty.cs
- Visitor.cs
- CharacterMetrics.cs
- VideoDrawing.cs
- FontStretches.cs
- HtmlElement.cs
- ServerValidateEventArgs.cs
- PeerApplicationLaunchInfo.cs
- CommonGetThemePartSize.cs
- Msec.cs
- StateMachineSubscription.cs
- WindowCollection.cs
- RelatedPropertyManager.cs
- SqlDataSource.cs
- CodeGenerator.cs
- xmlsaver.cs
- CommandID.cs
- DbConnectionPoolGroupProviderInfo.cs
- XamlSerializer.cs
- CatalogZone.cs
- EntityUtil.cs
- DictionaryMarkupSerializer.cs
- TableHeaderCell.cs
- StringFreezingAttribute.cs
- ArithmeticLiteral.cs
- AttributeEmitter.cs
- DataGridState.cs
- BrushValueSerializer.cs
- PointIndependentAnimationStorage.cs
- QueryCacheManager.cs
- TemplateEditingService.cs
- DnsElement.cs
- XsltContext.cs
- ParserHooks.cs
- CheckBoxFlatAdapter.cs
- DataRelationPropertyDescriptor.cs
- Win32Exception.cs
- MethodResolver.cs
- RecordManager.cs
- GetPageNumberCompletedEventArgs.cs
- EventToken.cs