Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities.DurableInstancing / System / Activities / DurableInstancing / DefaultObjectSerializer.cs / 1305376 / DefaultObjectSerializer.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.DurableInstancing { using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Xml; using System.Xml.Linq; using System.Xml.Serialization; class DefaultObjectSerializer : IObjectSerializer { NetDataContractSerializer serializer; public DefaultObjectSerializer() { this.serializer = new NetDataContractSerializer(); } public DictionaryDeserializePropertyBag(byte[] serializedValue) { using (MemoryStream memoryStream = new MemoryStream(serializedValue)) { return this.DeserializePropertyBag(memoryStream); } } public object DeserializeValue(byte[] serializedValue) { using (MemoryStream memoryStream = new MemoryStream(serializedValue)) { return this.DeserializeValue(memoryStream); } } public ArraySegment SerializePropertyBag(Dictionary value) { using (MemoryStream memoryStream = new MemoryStream(4096)) { this.SerializePropertyBag(memoryStream, value); return new ArraySegment (memoryStream.GetBuffer(), 0, Convert.ToInt32(memoryStream.Length)); } } public ArraySegment SerializeValue(object value) { using (MemoryStream memoryStream = new MemoryStream(4096)) { this.SerializeValue(memoryStream, value); return new ArraySegment (memoryStream.GetBuffer(), 0, Convert.ToInt32(memoryStream.Length)); } } protected virtual Dictionary DeserializePropertyBag(Stream stream) { using (XmlDictionaryReader dictionaryReader = XmlDictionaryReader.CreateBinaryReader(stream, XmlDictionaryReaderQuotas.Max)) { Dictionary propertyBag = new Dictionary (); if (dictionaryReader.ReadToDescendant("Property")) { do { dictionaryReader.Read(); KeyValuePair property = (KeyValuePair ) this.serializer.ReadObject(dictionaryReader); propertyBag.Add(property.Key, property.Value); } while (dictionaryReader.ReadToNextSibling("Property")); } return propertyBag; } } protected virtual object DeserializeValue(Stream stream) { using (XmlDictionaryReader dictionaryReader = XmlDictionaryReader.CreateBinaryReader(stream, XmlDictionaryReaderQuotas.Max)) { return this.serializer.ReadObject(dictionaryReader); } } protected virtual void SerializePropertyBag(Stream stream, Dictionary propertyBag) { using (XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateBinaryWriter(stream, null, null, false)) { dictionaryWriter.WriteStartElement("Properties"); foreach (KeyValuePair property in propertyBag) { dictionaryWriter.WriteStartElement("Property"); this.serializer.WriteObject(dictionaryWriter, property); dictionaryWriter.WriteEndElement(); } dictionaryWriter.WriteEndElement(); } } protected virtual void SerializeValue(Stream stream, object value) { using (XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateBinaryWriter(stream, null, null, false)) { this.serializer.WriteObject(dictionaryWriter, 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
- HtmlInputHidden.cs
- FragmentQueryKB.cs
- DurableTimerExtension.cs
- TextReader.cs
- DecryptRequest.cs
- RectAnimationClockResource.cs
- HtmlControlAdapter.cs
- SapiRecognizer.cs
- HwndHost.cs
- BorderSidesEditor.cs
- OleDbTransaction.cs
- Queue.cs
- DecoderFallbackWithFailureFlag.cs
- TraceProvider.cs
- DataGridColumnCollection.cs
- EventBookmark.cs
- _SslSessionsCache.cs
- Authorization.cs
- StreamGeometry.cs
- EventlogProvider.cs
- AggregateNode.cs
- RecognitionResult.cs
- ExpandCollapsePatternIdentifiers.cs
- AssociationType.cs
- InputElement.cs
- ToolStripTemplateNode.cs
- DBPropSet.cs
- ContentFileHelper.cs
- ExpressionBinding.cs
- InvalidTimeZoneException.cs
- RawStylusInput.cs
- WebPartDisplayModeEventArgs.cs
- GroupBox.cs
- ZipFileInfoCollection.cs
- MouseWheelEventArgs.cs
- ValueUtilsSmi.cs
- DetailsViewInsertEventArgs.cs
- SafeViewOfFileHandle.cs
- CLRBindingWorker.cs
- XmlAutoDetectWriter.cs
- TextLineBreak.cs
- ProviderSettingsCollection.cs
- ObjectConverter.cs
- FormViewDesigner.cs
- DESCryptoServiceProvider.cs
- SecureConversationServiceElement.cs
- HtmlTableRow.cs
- FormViewUpdatedEventArgs.cs
- DataGridParentRows.cs
- Menu.cs
- HealthMonitoringSectionHelper.cs
- DynamicILGenerator.cs
- SQLBoolean.cs
- WebPartDisplayModeEventArgs.cs
- PersonalizationStateQuery.cs
- RangeBase.cs
- ClientSession.cs
- TrustSection.cs
- MultiTrigger.cs
- OleDbEnumerator.cs
- DataBoundControlParameterTarget.cs
- StyleCollection.cs
- MetadataArtifactLoaderComposite.cs
- XPathNodeHelper.cs
- ExpressionBindingCollection.cs
- odbcmetadatacollectionnames.cs
- DefaultPropertyAttribute.cs
- SerializableAttribute.cs
- TemplatePropertyEntry.cs
- PrintingPermission.cs
- HtmlPageAdapter.cs
- ProcessHostMapPath.cs
- EventHandlers.cs
- StylusPointProperty.cs
- TextEffect.cs
- ToolstripProfessionalRenderer.cs
- Metadata.cs
- MTConfigUtil.cs
- MediaElementAutomationPeer.cs
- LiteralSubsegment.cs
- InvalidateEvent.cs
- StreamHelper.cs
- Bits.cs
- XmlIlGenerator.cs
- COAUTHINFO.cs
- Group.cs
- MILUtilities.cs
- VisualStyleTypesAndProperties.cs
- RepeatInfo.cs
- GenericWebPart.cs
- NetworkCredential.cs
- ReadWriteSpinLock.cs
- XmlElementList.cs
- StrongTypingException.cs
- BaseResourcesBuildProvider.cs
- SmiEventSink.cs
- CodeTypeReference.cs
- wgx_sdk_version.cs
- TextMetrics.cs
- XsltContext.cs