Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / Json / ByteArrayHelperWithString.cs / 1305376 / ByteArrayHelperWithString.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Runtime.Serialization.Json { using System; using System.Collections.Generic; using System.Text; using System.Xml; class ByteArrayHelperWithString : ArrayHelper{ static public readonly ByteArrayHelperWithString Instance = new ByteArrayHelperWithString(); internal void WriteArray(XmlWriter writer, byte[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); writer.WriteAttributeString(string.Empty, JsonGlobals.typeString, string.Empty, JsonGlobals.arrayString); for (int i = 0; i < count; i++) { writer.WriteStartElement(JsonGlobals.itemString, string.Empty); writer.WriteAttributeString(string.Empty, JsonGlobals.typeString, string.Empty, JsonGlobals.numberString); writer.WriteValue((int) array[offset + i]); writer.WriteEndElement(); } } protected override int ReadArray(XmlDictionaryReader reader, string localName, string namespaceUri, byte[] array, int offset, int count) { XmlJsonReader.CheckArray(array, offset, count); int actual = 0; while (actual < count && reader.IsStartElement(JsonGlobals.itemString, string.Empty)) { array[offset + actual] = ToByte(reader.ReadElementContentAsInt()); actual++; } return actual; } protected override void WriteArray(XmlDictionaryWriter writer, string prefix, string localName, string namespaceUri, byte[] array, int offset, int count) { WriteArray(writer, array, offset, count); } void ThrowConversionException(string value, string type) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new XmlException(SR.GetString(SR.XmlInvalidConversion, value, type))); } byte ToByte(int value) { if (value < byte.MinValue || value > byte.MaxValue) { ThrowConversionException(value.ToString(System.Globalization.NumberFormatInfo.CurrentInfo), "Byte"); } return (byte) value; } } } // 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
- NewExpression.cs
- MD5CryptoServiceProvider.cs
- MSAAEventDispatcher.cs
- GridViewRowEventArgs.cs
- DbBuffer.cs
- TextRunCache.cs
- FlowDocumentPageViewerAutomationPeer.cs
- FileDialog_Vista_Interop.cs
- XPathSelectionIterator.cs
- CompositeKey.cs
- VersionConverter.cs
- LinkButton.cs
- XPathNode.cs
- Storyboard.cs
- _ContextAwareResult.cs
- AVElementHelper.cs
- UnauthorizedWebPart.cs
- XmlSchemas.cs
- FilterElement.cs
- RotateTransform.cs
- ImageListUtils.cs
- MetafileHeaderWmf.cs
- ProxyAttribute.cs
- ColumnClickEvent.cs
- CustomError.cs
- WindowsListViewItem.cs
- ColorDialog.cs
- SimpleHandlerFactory.cs
- PreProcessor.cs
- DrawItemEvent.cs
- CapabilitiesAssignment.cs
- Int16Storage.cs
- WebReferencesBuildProvider.cs
- XmlEntity.cs
- ProtocolViolationException.cs
- XmlArrayItemAttributes.cs
- CngUIPolicy.cs
- MSG.cs
- HttpListenerException.cs
- XmlDataCollection.cs
- ActivityExecutionContext.cs
- AutomationElement.cs
- EdmTypeAttribute.cs
- ILGenerator.cs
- HttpStreamXmlDictionaryReader.cs
- NavigationExpr.cs
- XmlNodeList.cs
- LinkButton.cs
- TextSegment.cs
- localization.cs
- QuotedPrintableStream.cs
- StringFreezingAttribute.cs
- DispatcherHookEventArgs.cs
- XPathNodeIterator.cs
- XPathMessageFilterElement.cs
- GlobalizationAssembly.cs
- ResolveNameEventArgs.cs
- HashSetDebugView.cs
- PathFigureCollectionConverter.cs
- AsymmetricKeyExchangeDeformatter.cs
- EncoderFallback.cs
- UserThread.cs
- InternalTypeHelper.cs
- QilXmlWriter.cs
- SqlUDTStorage.cs
- SystemResourceKey.cs
- GrammarBuilderBase.cs
- Attributes.cs
- LoadRetryStrategyFactory.cs
- XmlMembersMapping.cs
- TextElementCollection.cs
- PlainXmlSerializer.cs
- SecurityCookieModeValidator.cs
- ReadOnlyDictionary.cs
- RelatedPropertyManager.cs
- XmlSerializerFormatAttribute.cs
- PermissionSetTriple.cs
- CalendarItem.cs
- panel.cs
- ExpressionList.cs
- SecureUICommand.cs
- QuestionEventArgs.cs
- MdiWindowListItemConverter.cs
- QueryContext.cs
- TraceLog.cs
- HasCopySemanticsAttribute.cs
- CaseStatementSlot.cs
- UnsafeNativeMethods.cs
- TableRowsCollectionEditor.cs
- ServiceModelSecurityTokenRequirement.cs
- LoadMessageLogger.cs
- ContainerParaClient.cs
- ListViewItemCollectionEditor.cs
- ActiveXHost.cs
- OLEDB_Util.cs
- TemplateColumn.cs
- SerializationAttributes.cs
- DataTemplate.cs
- SmtpLoginAuthenticationModule.cs
- PackageProperties.cs