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
- Random.cs
- OpenTypeLayout.cs
- Transform.cs
- ButtonColumn.cs
- Fonts.cs
- EdgeModeValidation.cs
- SafeNativeMethods.cs
- InkSerializer.cs
- WorkflowRequestContext.cs
- OptimalTextSource.cs
- PermissionSet.cs
- ThreadPool.cs
- CacheMode.cs
- WebPageTraceListener.cs
- DefaultValueConverter.cs
- InteropAutomationProvider.cs
- FontSource.cs
- DrawingAttributes.cs
- DocumentStream.cs
- ReceiveActivityValidator.cs
- ParameterToken.cs
- StringWriter.cs
- OptimisticConcurrencyException.cs
- SyndicationDeserializer.cs
- LabelEditEvent.cs
- AttributeExtensions.cs
- AssemblyCache.cs
- ProviderException.cs
- PackageRelationshipCollection.cs
- securitymgrsite.cs
- QilStrConcatenator.cs
- HierarchicalDataSourceControl.cs
- Transform3D.cs
- activationcontext.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- Utils.cs
- RuntimeArgumentHandle.cs
- WebBrowserPermission.cs
- FixedHighlight.cs
- WeakReferenceList.cs
- EntitySetDataBindingList.cs
- EntityCollection.cs
- StyleReferenceConverter.cs
- QilName.cs
- GroupBoxAutomationPeer.cs
- FacetDescriptionElement.cs
- XsdBuildProvider.cs
- XmlHierarchyData.cs
- ClrProviderManifest.cs
- Rules.cs
- DataChangedEventManager.cs
- DataGridViewLayoutData.cs
- TableFieldsEditor.cs
- UnmanagedMarshal.cs
- NameTable.cs
- RawContentTypeMapper.cs
- SystemParameters.cs
- CatalogPart.cs
- ExpressionConverter.cs
- BaseValidator.cs
- TemplateBindingExtensionConverter.cs
- LinqDataView.cs
- SamlAction.cs
- MessageHeaderInfoTraceRecord.cs
- ErasingStroke.cs
- ConfigXmlText.cs
- SqlDataSource.cs
- Peer.cs
- LexicalChunk.cs
- DataGridViewSelectedCellCollection.cs
- IndicShape.cs
- TemplateBamlRecordReader.cs
- DetailsViewModeEventArgs.cs
- QueryPageSettingsEventArgs.cs
- ResourceReader.cs
- WinHttpWebProxyFinder.cs
- COSERVERINFO.cs
- CollectionCodeDomSerializer.cs
- SessionStateSection.cs
- ObjectNavigationPropertyMapping.cs
- MouseBinding.cs
- ZipIOFileItemStream.cs
- HtmlDocument.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ForwardPositionQuery.cs
- DataFormats.cs
- UrlMappingsModule.cs
- MimeObjectFactory.cs
- ReflectTypeDescriptionProvider.cs
- WebUtil.cs
- __Error.cs
- ThreadStateException.cs
- HtmlGenericControl.cs
- ExceptionTrace.cs
- NaturalLanguageHyphenator.cs
- CultureTableRecord.cs
- UnionCqlBlock.cs
- OdbcError.cs
- HtmlInputText.cs
- WpfPayload.cs