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
- BitmapSource.cs
- IPGlobalProperties.cs
- HtmlElementCollection.cs
- SerializationException.cs
- Point3DAnimationUsingKeyFrames.cs
- DataGrid.cs
- BitmapEffectDrawingContextState.cs
- SoapEnumAttribute.cs
- AdapterDictionary.cs
- ConfigXmlText.cs
- ConsoleCancelEventArgs.cs
- XmlLinkedNode.cs
- Geometry3D.cs
- GridViewRowEventArgs.cs
- HandlerWithFactory.cs
- SqlNamer.cs
- DataServiceClientException.cs
- ListViewCommandEventArgs.cs
- MetadataCache.cs
- GeometryHitTestParameters.cs
- CounterCreationData.cs
- ComplexLine.cs
- DataGridHeaderBorder.cs
- PropertyEntry.cs
- HtmlGenericControl.cs
- WeakEventManager.cs
- FieldCollectionEditor.cs
- PlainXmlSerializer.cs
- Bits.cs
- ConstantCheck.cs
- WaitHandleCannotBeOpenedException.cs
- BehaviorDragDropEventArgs.cs
- DoubleCollectionConverter.cs
- WebPartTransformerAttribute.cs
- RSACryptoServiceProvider.cs
- HandleValueEditor.cs
- InvokeGenerator.cs
- VisualStyleElement.cs
- MultiBinding.cs
- SchemaMerger.cs
- CompositeActivityCodeGenerator.cs
- TransformerConfigurationWizardBase.cs
- ScriptControlManager.cs
- AccessedThroughPropertyAttribute.cs
- DiscoveryInnerClientAdhocCD1.cs
- MessageSecurityOverMsmq.cs
- DataServiceQueryException.cs
- XmlUTF8TextReader.cs
- FontNameEditor.cs
- ExpressionConverter.cs
- ExpandSegmentCollection.cs
- WebPartConnection.cs
- IPEndPoint.cs
- TargetException.cs
- OleDbConnection.cs
- PageAsyncTask.cs
- HandleScope.cs
- SqlCacheDependencyDatabaseCollection.cs
- BuildManager.cs
- TypographyProperties.cs
- UniqueConstraint.cs
- SpellerError.cs
- StateRuntime.cs
- TcpStreams.cs
- ScaleTransform.cs
- LongPath.cs
- TimeZoneInfo.cs
- CipherData.cs
- DateTimeUtil.cs
- MD5CryptoServiceProvider.cs
- HttpContext.cs
- HtmlInputRadioButton.cs
- StringWriter.cs
- XmlDocument.cs
- EventData.cs
- BindingSource.cs
- RefreshInfo.cs
- PathSegment.cs
- SuppressMessageAttribute.cs
- WebPartVerbsEventArgs.cs
- FilteredAttributeCollection.cs
- SID.cs
- QueryCacheEntry.cs
- HealthMonitoringSection.cs
- XmlWrappingWriter.cs
- basevalidator.cs
- WebDescriptionAttribute.cs
- SoapEnvelopeProcessingElement.cs
- DateTimeFormat.cs
- securitycriticaldataformultiplegetandset.cs
- ObjectToIdCache.cs
- UrlAuthorizationModule.cs
- XmlSchemaComplexType.cs
- ToolBar.cs
- ElementAction.cs
- CollectionViewSource.cs
- CustomAttributeSerializer.cs
- WebPartChrome.cs
- Adorner.cs
- CatalogPartChrome.cs