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
- CheckBoxFlatAdapter.cs
- FontFaceLayoutInfo.cs
- HtmlAnchor.cs
- JpegBitmapEncoder.cs
- HitTestParameters.cs
- ClockGroup.cs
- WebServiceMethodData.cs
- ClockGroup.cs
- RenderingBiasValidation.cs
- FrameworkContextData.cs
- Int32AnimationBase.cs
- MeshGeometry3D.cs
- ChangeBlockUndoRecord.cs
- OutputBuffer.cs
- WindowHideOrCloseTracker.cs
- ScrollChrome.cs
- VarRemapper.cs
- DataPagerFieldItem.cs
- BatchWriter.cs
- AttributeCollection.cs
- TableAdapterManagerHelper.cs
- PtsPage.cs
- IPipelineRuntime.cs
- OptimalTextSource.cs
- CheckedPointers.cs
- PolicyStatement.cs
- SafeArrayRankMismatchException.cs
- D3DImage.cs
- Hash.cs
- LabelLiteral.cs
- RSAPKCS1SignatureDeformatter.cs
- DataBoundControl.cs
- input.cs
- WebPartConnectVerb.cs
- MetabaseSettingsIis7.cs
- LinqDataSourceSelectEventArgs.cs
- NoneExcludedImageIndexConverter.cs
- BaseCAMarshaler.cs
- StorageMappingFragment.cs
- Expr.cs
- DefaultCommandExtensionCallback.cs
- SiteMapNode.cs
- InstanceOwnerQueryResult.cs
- XmlAttributeOverrides.cs
- XmlHierarchicalEnumerable.cs
- SQLGuidStorage.cs
- EntityContainerRelationshipSet.cs
- AmbientValueAttribute.cs
- DirectionalLight.cs
- LinkDescriptor.cs
- XsltInput.cs
- UrlAuthorizationModule.cs
- SqlCachedBuffer.cs
- SignatureHelper.cs
- ProcessThread.cs
- CollectionBase.cs
- PeerPresenceInfo.cs
- SystemFonts.cs
- CachedRequestParams.cs
- DetailsViewDesigner.cs
- XmlLangPropertyAttribute.cs
- LocalBuilder.cs
- namescope.cs
- DeferredReference.cs
- SoapSchemaExporter.cs
- DataControlCommands.cs
- StyleXamlParser.cs
- TextSegment.cs
- PropertyChangingEventArgs.cs
- GeometryCombineModeValidation.cs
- WebEventTraceProvider.cs
- ZipIOCentralDirectoryBlock.cs
- StateMachineWorkflowInstance.cs
- Config.cs
- WorkflowViewManager.cs
- RegexGroup.cs
- NullRuntimeConfig.cs
- ObsoleteAttribute.cs
- SctClaimDictionary.cs
- GridViewHeaderRowPresenter.cs
- FileDialogPermission.cs
- SessionStateItemCollection.cs
- DocumentGrid.cs
- TextRunProperties.cs
- CustomBindingElementCollection.cs
- WebPartZone.cs
- VirtualizingPanel.cs
- TextEffectResolver.cs
- ImageField.cs
- MobileControl.cs
- SecurityUniqueId.cs
- M3DUtil.cs
- CapiHashAlgorithm.cs
- ResourceProviderFactory.cs
- XmlElementAttribute.cs
- NameValueFileSectionHandler.cs
- SafeRightsManagementSessionHandle.cs
- PermissionListSet.cs
- RewritingValidator.cs
- DataQuery.cs