Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextProperties.cs
- GeneralTransform.cs
- Helpers.cs
- ToolStripManager.cs
- NotifyInputEventArgs.cs
- DesignerActionUIService.cs
- FileBasedResourceGroveler.cs
- DataGridViewSelectedRowCollection.cs
- FastPropertyAccessor.cs
- CTreeGenerator.cs
- XmlSchemaSimpleType.cs
- ProfileBuildProvider.cs
- SynchronizationLockException.cs
- CommonEndpointBehaviorElement.cs
- XsdBuilder.cs
- Dump.cs
- XmlRootAttribute.cs
- Line.cs
- PeerChannelFactory.cs
- SplayTreeNode.cs
- WebPartConnectionsCancelEventArgs.cs
- ColumnResult.cs
- TreeViewItem.cs
- GridViewDeleteEventArgs.cs
- BulletChrome.cs
- SpeakInfo.cs
- OdbcFactory.cs
- ReaderOutput.cs
- XmlEntity.cs
- ExpanderAutomationPeer.cs
- FormatStringEditor.cs
- DataRelationPropertyDescriptor.cs
- XmlRawWriter.cs
- UnsafeNativeMethodsTablet.cs
- InternalUserCancelledException.cs
- UidPropertyAttribute.cs
- Number.cs
- DataServiceRequestOfT.cs
- HtmlTernaryTree.cs
- DefaultPropertyAttribute.cs
- LinkedList.cs
- ZipIOBlockManager.cs
- QilInvokeLateBound.cs
- HMAC.cs
- WebPartsSection.cs
- QuadraticBezierSegment.cs
- MemberInitExpression.cs
- ZoneButton.cs
- PreservationFileReader.cs
- NetStream.cs
- LocationUpdates.cs
- RpcAsyncResult.cs
- CommandPlan.cs
- HwndPanningFeedback.cs
- IntegerValidatorAttribute.cs
- ParameterReplacerVisitor.cs
- Trace.cs
- CreationContext.cs
- OperatingSystemVersionCheck.cs
- BinaryNode.cs
- SamlAuthenticationStatement.cs
- TypeConverterAttribute.cs
- _OSSOCK.cs
- NullRuntimeConfig.cs
- HwndHost.cs
- StdValidatorsAndConverters.cs
- DbProviderFactories.cs
- SqlDataSourceQueryEditorForm.cs
- MessageVersion.cs
- ContainerSelectorActiveEvent.cs
- SamlAuthorityBinding.cs
- ColumnReorderedEventArgs.cs
- XmlSchemaException.cs
- XmlNotation.cs
- ProgressBar.cs
- StreamAsIStream.cs
- DbProviderServices.cs
- SymbolUsageManager.cs
- DataDocumentXPathNavigator.cs
- path.cs
- FixedSOMPage.cs
- ExtensionCollection.cs
- CatalogZoneBase.cs
- Lock.cs
- ReadOnlyPropertyMetadata.cs
- DbSourceCommand.cs
- Thickness.cs
- FilterException.cs
- DbParameterHelper.cs
- PeerCollaborationPermission.cs
- MinMaxParagraphWidth.cs
- EndSelectCardRequest.cs
- InvariantComparer.cs
- DataBindingExpressionBuilder.cs
- UITypeEditor.cs
- ExpressionBuilder.cs
- DllNotFoundException.cs
- X500Name.cs
- SystemTcpConnection.cs
- ProcessModule.cs