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
- ListViewDeleteEventArgs.cs
- CodeCatchClause.cs
- ScrollData.cs
- PackageStore.cs
- MetaData.cs
- AnnotationMap.cs
- WebPartConnectionsCloseVerb.cs
- EntityDataSourceState.cs
- GroupAggregateExpr.cs
- WebRequestModuleElementCollection.cs
- X509Extension.cs
- QueryGenerator.cs
- ContractCodeDomInfo.cs
- RotationValidation.cs
- ConfigXmlWhitespace.cs
- WebPartMovingEventArgs.cs
- SQLBinaryStorage.cs
- HyperLinkColumn.cs
- CrossSiteScriptingValidation.cs
- NGCSerializerAsync.cs
- FaultContractInfo.cs
- InstanceData.cs
- HtmlAnchor.cs
- DataColumnMapping.cs
- WriteStateInfoBase.cs
- NavigationFailedEventArgs.cs
- mda.cs
- TextReader.cs
- InternalDispatchObject.cs
- TrustLevelCollection.cs
- CodeArrayIndexerExpression.cs
- FillRuleValidation.cs
- UInt32Storage.cs
- ToolBarTray.cs
- DataRowCollection.cs
- ProtocolImporter.cs
- ProgressBar.cs
- SafeProcessHandle.cs
- ClientCredentialsSecurityTokenManager.cs
- QuadraticEase.cs
- TimeStampChecker.cs
- StringWriter.cs
- TextStore.cs
- AdPostCacheSubstitution.cs
- WebPartDescription.cs
- UidManager.cs
- IResourceProvider.cs
- CapabilitiesSection.cs
- WebRequestModuleElement.cs
- EncryptedReference.cs
- ListControl.cs
- FaultContractAttribute.cs
- PaintValueEventArgs.cs
- WebBrowsableAttribute.cs
- XmlCountingReader.cs
- ColorConvertedBitmap.cs
- TextDataBindingHandler.cs
- ConditionCollection.cs
- DataGridColumnStyleMappingNameEditor.cs
- FileChangeNotifier.cs
- DropSource.cs
- ToolStripProgressBar.cs
- LayoutUtils.cs
- CrossAppDomainChannel.cs
- DateTimeValueSerializerContext.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ConfigurationSchemaErrors.cs
- Listener.cs
- _RegBlobWebProxyDataBuilder.cs
- RoleService.cs
- CacheRequest.cs
- PropertyPanel.cs
- ToolStripSplitButton.cs
- TransformGroup.cs
- TypedTableBaseExtensions.cs
- ProcessManager.cs
- LogPolicy.cs
- PreloadedPackages.cs
- XamlRtfConverter.cs
- BypassElementCollection.cs
- MessageQueueException.cs
- StandardToolWindows.cs
- LicenseContext.cs
- HtmlWindowCollection.cs
- EventPrivateKey.cs
- FixedNode.cs
- XPathQilFactory.cs
- DataControlPagerLinkButton.cs
- ProxyWebPartConnectionCollection.cs
- TabRenderer.cs
- TemplateControl.cs
- recordstate.cs
- MemberRelationshipService.cs
- FactoryRecord.cs
- SessionEndingCancelEventArgs.cs
- FixedSOMGroup.cs
- DataRelation.cs
- DesignerSerializationOptionsAttribute.cs
- ChtmlSelectionListAdapter.cs
- SortKey.cs