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
- DataSourceXmlClassAttribute.cs
- PTProvider.cs
- XmlAutoDetectWriter.cs
- DbConnectionPoolGroupProviderInfo.cs
- UniqueConstraint.cs
- SqlWebEventProvider.cs
- WindowCollection.cs
- TypedServiceOperationListItem.cs
- CoTaskMemHandle.cs
- CompensatableSequenceActivity.cs
- DataGridViewRowsAddedEventArgs.cs
- HttpHandlerActionCollection.cs
- RtfControls.cs
- BindingSource.cs
- CorrelationToken.cs
- Site.cs
- SessionState.cs
- WsatConfiguration.cs
- EtwTrace.cs
- Int32KeyFrameCollection.cs
- ManipulationDelta.cs
- NonClientArea.cs
- TextSegment.cs
- AssemblySettingAttributes.cs
- WebResourceAttribute.cs
- SmiTypedGetterSetter.cs
- TextEndOfParagraph.cs
- Config.cs
- Itemizer.cs
- GridViewCommandEventArgs.cs
- DoubleCollection.cs
- XmlReaderSettings.cs
- HandleValueEditor.cs
- LicenseProviderAttribute.cs
- MobileContainerDesigner.cs
- EntityDataSourceSelectingEventArgs.cs
- ImageAutomationPeer.cs
- PrintingPermission.cs
- SchemaMerger.cs
- DataGridViewCellCollection.cs
- WmlFormAdapter.cs
- DirectoryInfo.cs
- MissingFieldException.cs
- RelatedCurrencyManager.cs
- NotifyInputEventArgs.cs
- Trace.cs
- DigestTraceRecordHelper.cs
- OdbcHandle.cs
- Function.cs
- MetadataFile.cs
- BinaryUtilClasses.cs
- WebHttpElement.cs
- SoapExtensionTypeElement.cs
- CreateUserWizardStep.cs
- DataGridViewRow.cs
- mactripleDES.cs
- Clipboard.cs
- ScrollEventArgs.cs
- IQueryable.cs
- Number.cs
- FormsAuthenticationEventArgs.cs
- FtpCachePolicyElement.cs
- AdapterDictionary.cs
- ExtendedTransformFactory.cs
- SHA384.cs
- WebPartTransformerAttribute.cs
- BaseCodeDomTreeGenerator.cs
- ColumnResizeUndoUnit.cs
- StatusBarItemAutomationPeer.cs
- Image.cs
- ScrollItemPattern.cs
- TemplateBindingExpressionConverter.cs
- OLEDB_Util.cs
- OdbcCommand.cs
- NavigationPropertySingletonExpression.cs
- WindowsRichEditRange.cs
- ObjectRef.cs
- MergeFailedEvent.cs
- SqlRewriteScalarSubqueries.cs
- RouteUrlExpressionBuilder.cs
- ProgressBarAutomationPeer.cs
- XmlAttributeOverrides.cs
- XmlAttributeAttribute.cs
- BrowserDefinition.cs
- EventProviderWriter.cs
- ADMembershipProvider.cs
- MetaTable.cs
- TypeUtils.cs
- AdjustableArrowCap.cs
- StreamInfo.cs
- SortDescriptionCollection.cs
- TableSectionStyle.cs
- FragmentQueryProcessor.cs
- MethodToken.cs
- GenericIdentity.cs
- PrtTicket_Public_Simple.cs
- ReadOnlyDictionary.cs
- InputProcessorProfilesLoader.cs
- DropShadowBitmapEffect.cs
- SystemFonts.cs