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
- WindowsFormsSynchronizationContext.cs
- RegexRunner.cs
- ScriptDescriptor.cs
- ProtocolsSection.cs
- FlowLayoutSettings.cs
- CollectionType.cs
- CultureInfoConverter.cs
- OleDbWrapper.cs
- iisPickupDirectory.cs
- TemplateBaseAction.cs
- WebBaseEventKeyComparer.cs
- _UriSyntax.cs
- RegexFCD.cs
- DoubleUtil.cs
- ProfilePropertySettings.cs
- EditingScope.cs
- FileDialog_Vista.cs
- ProcessHostMapPath.cs
- WebPartConnectionsConnectVerb.cs
- COAUTHIDENTITY.cs
- ChangeDirector.cs
- ControlCollection.cs
- WebPartConnectionsConnectVerb.cs
- XpsThumbnail.cs
- BmpBitmapEncoder.cs
- WorkflowInstanceQuery.cs
- CategoryValueConverter.cs
- WSFederationHttpSecurityMode.cs
- IntegerValidatorAttribute.cs
- ScopeElement.cs
- RequestTimeoutManager.cs
- EventSinkHelperWriter.cs
- commandenforcer.cs
- MatrixTransform.cs
- Event.cs
- SQLDateTimeStorage.cs
- ResourceType.cs
- StackSpiller.Bindings.cs
- SchemaImporterExtensionElementCollection.cs
- isolationinterop.cs
- EllipseGeometry.cs
- DefaultHttpHandler.cs
- XmlTextReaderImpl.cs
- NeedSkipTokenVisitor.cs
- Dump.cs
- ResolveResponse.cs
- StreamAsIStream.cs
- XamlTreeBuilder.cs
- CustomAttribute.cs
- GroupBoxRenderer.cs
- CharStorage.cs
- HttpContext.cs
- TimeoutValidationAttribute.cs
- CategoryGridEntry.cs
- IDQuery.cs
- RenderingEventArgs.cs
- DataTableClearEvent.cs
- HttpErrorTraceRecord.cs
- ProcessInfo.cs
- DateTime.cs
- StyleCollection.cs
- XmlSequenceWriter.cs
- CodeStatementCollection.cs
- Baml2006ReaderContext.cs
- ColorTransform.cs
- SafeNativeMethods.cs
- Attachment.cs
- AsyncCodeActivity.cs
- PeerCollaborationPermission.cs
- XmlWrappingReader.cs
- SortDescriptionCollection.cs
- ISessionStateStore.cs
- TextDecorationLocationValidation.cs
- AvtEvent.cs
- DataKeyArray.cs
- DesignerVerb.cs
- DataGridViewBand.cs
- Math.cs
- PaperSize.cs
- StrongName.cs
- SoapHeaderException.cs
- SoapInteropTypes.cs
- ProgressBar.cs
- NativeMethods.cs
- XmlSchemaImport.cs
- PromptEventArgs.cs
- DefaultValueAttribute.cs
- Animatable.cs
- PatternMatcher.cs
- GraphicsContext.cs
- ToolStripContentPanelRenderEventArgs.cs
- TextElementCollection.cs
- ButtonBase.cs
- NullableBoolConverter.cs
- SynchronizedDispatch.cs
- WFItemsToSpacerVisibility.cs
- ControlCachePolicy.cs
- NotFiniteNumberException.cs
- NavigationWindow.cs
- _CommandStream.cs