Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Serializer / QueueSurrogate.cs / 1305376 / QueueSurrogate.cs
namespace System.Workflow.ComponentModel.Serialization { using System; using System.Xml; using System.Runtime.Serialization; using System.Reflection; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Collections; using System.Collections.Generic; #region QueueSurrogate internal sealed class QueueSurrogate : ISerializationSurrogate { internal QueueSurrogate() { } void ISerializationSurrogate.GetObjectData(object obj, SerializationInfo info, StreamingContext context) { object[] items = ((Queue)obj).ToArray(); if (items.Length == 1) info.AddValue("item", items[0]); else info.AddValue("items", items); info.SetType(typeof(QRef)); } object ISerializationSurrogate.SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { return null; } #region QRef [Serializable] private sealed class QRef : IObjectReference, IDeserializationCallback { [OptionalField] private IList items = null; [OptionalField] private object item = null; [NonSerialized] private Queue queue = null; Object IObjectReference.GetRealObject(StreamingContext context) { if (this.queue == null) { this.queue = new Queue(); } return this.queue; } void IDeserializationCallback.OnDeserialization(Object sender) { if (this.queue != null) { if (this.items != null) { for (int n = 0; n < this.items.Count; n++) this.queue.Enqueue(items[n]); } else { this.queue.Enqueue(this.item); } this.queue = null; } } } #endregion } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel.Serialization { using System; using System.Xml; using System.Runtime.Serialization; using System.Reflection; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Collections; using System.Collections.Generic; #region QueueSurrogate internal sealed class QueueSurrogate : ISerializationSurrogate { internal QueueSurrogate() { } void ISerializationSurrogate.GetObjectData(object obj, SerializationInfo info, StreamingContext context) { object[] items = ((Queue)obj).ToArray(); if (items.Length == 1) info.AddValue("item", items[0]); else info.AddValue("items", items); info.SetType(typeof(QRef)); } object ISerializationSurrogate.SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { return null; } #region QRef [Serializable] private sealed class QRef : IObjectReference, IDeserializationCallback { [OptionalField] private IList items = null; [OptionalField] private object item = null; [NonSerialized] private Queue queue = null; Object IObjectReference.GetRealObject(StreamingContext context) { if (this.queue == null) { this.queue = new Queue(); } return this.queue; } void IDeserializationCallback.OnDeserialization(Object sender) { if (this.queue != null) { if (this.items != null) { for (int n = 0; n < this.items.Count; n++) this.queue.Enqueue(items[n]); } else { this.queue.Enqueue(this.item); } this.queue = null; } } } #endregion } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueryContinueDragEventArgs.cs
- ProfilePropertySettingsCollection.cs
- DbgUtil.cs
- EmbeddedMailObject.cs
- StructureChangedEventArgs.cs
- HttpListenerTimeoutManager.cs
- QueryProcessor.cs
- FilterException.cs
- PropertyGridCommands.cs
- cache.cs
- ADMembershipUser.cs
- FontUnitConverter.cs
- PageCatalogPart.cs
- HMACSHA1.cs
- RawStylusInputCustomDataList.cs
- XmlHierarchicalDataSourceView.cs
- WebPart.cs
- WebHeaderCollection.cs
- LinearKeyFrames.cs
- SQLMembershipProvider.cs
- SEHException.cs
- ProbeDuplexAsyncResult.cs
- BinaryUtilClasses.cs
- WorkflowMarkupSerializationException.cs
- WaitHandle.cs
- AttributeXamlType.cs
- ITextView.cs
- Stack.cs
- CommonDialog.cs
- NonParentingControl.cs
- WinFormsComponentEditor.cs
- ChannelTokenTypeConverter.cs
- ConnectionManagementElement.cs
- WebPartsSection.cs
- ConditionalExpression.cs
- ErrorFormatter.cs
- ZipArchive.cs
- Type.cs
- EntityContainerEmitter.cs
- RightsManagementInformation.cs
- LocalsItemDescription.cs
- HtmlValidatorAdapter.cs
- SiteIdentityPermission.cs
- ObjectSecurity.cs
- ToolStripMenuItemCodeDomSerializer.cs
- XamlTypeMapper.cs
- FactoryId.cs
- HttpModuleCollection.cs
- Encoder.cs
- TcpHostedTransportConfiguration.cs
- DiagnosticStrings.cs
- CompilerScope.Storage.cs
- QueryOptionExpression.cs
- BindingWorker.cs
- BitmapDecoder.cs
- OdbcReferenceCollection.cs
- SimpleBitVector32.cs
- InkPresenter.cs
- DateTimeOffset.cs
- RequestCacheEntry.cs
- TypedTableBaseExtensions.cs
- HostVisual.cs
- SizeIndependentAnimationStorage.cs
- WindowsAltTab.cs
- SystemKeyConverter.cs
- ArrayElementGridEntry.cs
- StatusBarPanelClickEvent.cs
- SqlFormatter.cs
- FreezableOperations.cs
- ValidationRuleCollection.cs
- BuildProviderUtils.cs
- ActivityStateQuery.cs
- ForceCopyBuildProvider.cs
- StylusEditingBehavior.cs
- BevelBitmapEffect.cs
- XmlNullResolver.cs
- ListViewUpdateEventArgs.cs
- MultiBindingExpression.cs
- OrderedHashRepartitionEnumerator.cs
- WebHostedComPlusServiceHost.cs
- CmsInterop.cs
- ApplicationHost.cs
- EncodingNLS.cs
- DbProviderConfigurationHandler.cs
- GridProviderWrapper.cs
- Int32Animation.cs
- SerializationInfoEnumerator.cs
- DataGridItemCollection.cs
- PhysicalOps.cs
- ObjectTag.cs
- _SSPISessionCache.cs
- SiteMap.cs
- Italic.cs
- XPathChildIterator.cs
- FileSystemEventArgs.cs
- DtdParser.cs
- SR.cs
- ArrayHelper.cs
- CheckBox.cs
- Renderer.cs