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
- MessageFilterException.cs
- HelpKeywordAttribute.cs
- ImportOptions.cs
- Decoder.cs
- InboundActivityHelper.cs
- TreeNodeStyleCollection.cs
- ListViewGroupConverter.cs
- ReturnEventArgs.cs
- Geometry3D.cs
- XmlUtil.cs
- XmlDataImplementation.cs
- ToolboxBitmapAttribute.cs
- SplineKeyFrames.cs
- WindowHideOrCloseTracker.cs
- CallbackHandler.cs
- BufferBuilder.cs
- LazyLoadBehavior.cs
- DataConnectionHelper.cs
- basecomparevalidator.cs
- DesignerAutoFormatCollection.cs
- MemberJoinTreeNode.cs
- XComponentModel.cs
- TableCellsCollectionEditor.cs
- EllipseGeometry.cs
- FragmentQueryKB.cs
- cookie.cs
- ReflectionUtil.cs
- FastEncoder.cs
- SelectionListDesigner.cs
- GeneralTransform3DGroup.cs
- FloaterBaseParaClient.cs
- SqlDataSourceConnectionPanel.cs
- HttpContext.cs
- ColumnResizeUndoUnit.cs
- SelectedPathEditor.cs
- PackageDigitalSignatureManager.cs
- PersonalizableAttribute.cs
- WebPartCloseVerb.cs
- DefinitionUpdate.cs
- RectangleConverter.cs
- SynchronizingStream.cs
- UiaCoreApi.cs
- IndicCharClassifier.cs
- BaseResourcesBuildProvider.cs
- XamlFilter.cs
- NoClickablePointException.cs
- MenuBindingsEditor.cs
- SignatureToken.cs
- AuthenticationServiceManager.cs
- StandardCommands.cs
- ProvidersHelper.cs
- Point3DConverter.cs
- UnionCodeGroup.cs
- OptimizedTemplateContent.cs
- SingleConverter.cs
- SqlStatistics.cs
- connectionpool.cs
- RoutedUICommand.cs
- AuthenticationService.cs
- ConstructorNeedsTagAttribute.cs
- SynchronizedInputPattern.cs
- FixedDocument.cs
- BasicCommandTreeVisitor.cs
- FixedSOMTableCell.cs
- BuildProvider.cs
- COM2FontConverter.cs
- SiteMapDataSourceDesigner.cs
- UnsupportedPolicyOptionsException.cs
- Pts.cs
- DataGridViewIntLinkedList.cs
- SuppressIldasmAttribute.cs
- DocumentPaginator.cs
- GenericArgumentsUpdater.cs
- ThicknessAnimationBase.cs
- XPathParser.cs
- InstallerTypeAttribute.cs
- MethodSignatureGenerator.cs
- TdsParserSessionPool.cs
- HiddenFieldPageStatePersister.cs
- OrderedDictionary.cs
- HttpProtocolImporter.cs
- RecommendedAsConfigurableAttribute.cs
- Visual.cs
- DefaultTypeArgumentAttribute.cs
- ListControl.cs
- DataControlFieldCell.cs
- EnumValidator.cs
- InternalCache.cs
- GeneralTransform.cs
- SubclassTypeValidator.cs
- AccessText.cs
- WebBrowserPermission.cs
- COAUTHIDENTITY.cs
- DetailsViewRow.cs
- GlyphManager.cs
- BindingCollection.cs
- ArglessEventHandlerProxy.cs
- CachedCompositeFamily.cs
- SQLString.cs
- EventMappingSettings.cs