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
- TextRangeAdaptor.cs
- ColumnMapCopier.cs
- PlatformNotSupportedException.cs
- LicenseException.cs
- ContentValidator.cs
- EventManager.cs
- TextCollapsingProperties.cs
- XmlIgnoreAttribute.cs
- HttpContext.cs
- NavigationPropertyEmitter.cs
- ShutDownListener.cs
- GetWinFXPath.cs
- HitTestWithPointDrawingContextWalker.cs
- DeclaredTypeValidator.cs
- Win32.cs
- DetailsViewModeEventArgs.cs
- SerializeAbsoluteContext.cs
- StorageMappingFragment.cs
- Link.cs
- PropertyGroupDescription.cs
- ObjectPropertyMapping.cs
- HierarchicalDataTemplate.cs
- TypeToken.cs
- GuidTagList.cs
- storepermission.cs
- ContextStaticAttribute.cs
- StylusPointProperty.cs
- ApplicationSecurityManager.cs
- cookie.cs
- DataGridRelationshipRow.cs
- AncestorChangedEventArgs.cs
- ResourceReferenceExpressionConverter.cs
- List.cs
- QueryTask.cs
- ObjectDataSourceEventArgs.cs
- ParserHooks.cs
- DetailsViewDeletedEventArgs.cs
- EntityViewGenerationConstants.cs
- x509store.cs
- DataGridRowDetailsEventArgs.cs
- HierarchicalDataSourceControl.cs
- DataSourceSelectArguments.cs
- ExtentJoinTreeNode.cs
- ResourceAttributes.cs
- CommandArguments.cs
- OleDbWrapper.cs
- StandardCommands.cs
- ScrollProviderWrapper.cs
- safex509handles.cs
- DataControlHelper.cs
- MonitoringDescriptionAttribute.cs
- QuotedStringFormatReader.cs
- WsatServiceAddress.cs
- TableAutomationPeer.cs
- DataGridTablesFactory.cs
- Int64Animation.cs
- TrackBarDesigner.cs
- ParallelTimeline.cs
- XmlDeclaration.cs
- CompressionTransform.cs
- MobileContainerDesigner.cs
- OleDbMetaDataFactory.cs
- InvalidComObjectException.cs
- ClientRuntimeConfig.cs
- CFStream.cs
- DictionarySectionHandler.cs
- DataGridColumnStyleMappingNameEditor.cs
- LinqDataSourceDisposeEventArgs.cs
- UseAttributeSetsAction.cs
- ButtonFieldBase.cs
- ServiceModelInstallComponent.cs
- EventNotify.cs
- ToolStripHighContrastRenderer.cs
- EpmSyndicationContentSerializer.cs
- Msec.cs
- MetadataArtifactLoaderFile.cs
- HierarchicalDataBoundControl.cs
- GridView.cs
- BamlReader.cs
- BCLDebug.cs
- XmlSchemaSubstitutionGroup.cs
- CaseInsensitiveOrdinalStringComparer.cs
- TableRow.cs
- EnumValAlphaComparer.cs
- FileDialog_Vista.cs
- DispatchWrapper.cs
- ELinqQueryState.cs
- CaretElement.cs
- ClientFormsIdentity.cs
- Color.cs
- SafeNativeMethods.cs
- DataGridColumnCollection.cs
- CacheVirtualItemsEvent.cs
- ConnectionProviderAttribute.cs
- TextMetrics.cs
- IdentityHolder.cs
- CodeNamespaceImport.cs
- Size3DConverter.cs
- XamlInterfaces.cs
- Timer.cs