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
- SmtpAuthenticationManager.cs
- ListViewCommandEventArgs.cs
- FileSecurity.cs
- ExtendedProtectionPolicy.cs
- AspNetSynchronizationContext.cs
- TablePattern.cs
- ITextView.cs
- CompiledAction.cs
- BamlMapTable.cs
- GAC.cs
- StreamGeometry.cs
- DataServiceQueryProvider.cs
- SmiEventSink_Default.cs
- EntitySqlException.cs
- FormViewRow.cs
- SafeTimerHandle.cs
- TypeTypeConverter.cs
- XpsResourceDictionary.cs
- SwitchElementsCollection.cs
- RepeatInfo.cs
- XmlHelper.cs
- CodeArgumentReferenceExpression.cs
- SimpleWebHandlerParser.cs
- BuildManager.cs
- MetadataItem_Static.cs
- OrderPreservingMergeHelper.cs
- CompilationAssemblyInstallComponent.cs
- documentsequencetextview.cs
- CssTextWriter.cs
- SponsorHelper.cs
- UserCancellationException.cs
- ListViewContainer.cs
- StringUtil.cs
- TargetControlTypeCache.cs
- WCFModelStrings.Designer.cs
- FixedFindEngine.cs
- ThreadAbortException.cs
- TargetParameterCountException.cs
- NotifyInputEventArgs.cs
- TemplateInstanceAttribute.cs
- ParserContext.cs
- LinearGradientBrush.cs
- WebPartCloseVerb.cs
- CodeArrayIndexerExpression.cs
- Vector3DCollectionValueSerializer.cs
- SizeAnimationBase.cs
- ZoneButton.cs
- TdsRecordBufferSetter.cs
- DataTableMappingCollection.cs
- UInt32Converter.cs
- ComponentEditorForm.cs
- Mapping.cs
- GatewayIPAddressInformationCollection.cs
- WarningException.cs
- AppDomainResourcePerfCounters.cs
- CachedTypeface.cs
- XmlSchemaProviderAttribute.cs
- UInt64Storage.cs
- DesignerExtenders.cs
- ColumnMapVisitor.cs
- StrokeNodeOperations2.cs
- FixedSOMTableRow.cs
- EntityContainerRelationshipSetEnd.cs
- CoTaskMemHandle.cs
- ServiceContractGenerator.cs
- FormViewRow.cs
- ConsoleKeyInfo.cs
- TripleDES.cs
- ControlPropertyNameConverter.cs
- TemplateLookupAction.cs
- KerberosRequestorSecurityToken.cs
- HttpWrapper.cs
- AlphaSortedEnumConverter.cs
- Int64.cs
- SqlRowUpdatedEvent.cs
- WebEventCodes.cs
- EdgeModeValidation.cs
- ECDiffieHellmanCng.cs
- DynamicAttribute.cs
- XmlSchemaGroupRef.cs
- TabControlDesigner.cs
- RectangleHotSpot.cs
- LocatorManager.cs
- RewritingProcessor.cs
- DoWorkEventArgs.cs
- DetailsViewCommandEventArgs.cs
- GestureRecognizer.cs
- NativeMethods.cs
- BlurEffect.cs
- SoapRpcMethodAttribute.cs
- TraceHandler.cs
- RenderContext.cs
- NotificationContext.cs
- NativeRightsManagementAPIsStructures.cs
- SendDesigner.xaml.cs
- PenCursorManager.cs
- TimeIntervalCollection.cs
- ISessionStateStore.cs
- WorkflowTransactionOptions.cs
- SharedRuntimeState.cs