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
- WebServiceErrorEvent.cs
- BuildManager.cs
- ScriptingAuthenticationServiceSection.cs
- DefaultValidator.cs
- Comparer.cs
- DataBinder.cs
- ObjectDataSourceStatusEventArgs.cs
- SoapTypeAttribute.cs
- DispatchOperationRuntime.cs
- HitTestWithPointDrawingContextWalker.cs
- FunctionParameter.cs
- AssemblyEvidenceFactory.cs
- DependencyObjectType.cs
- SafeCryptHandles.cs
- StoreItemCollection.cs
- TransformFinalBlockRequest.cs
- StringSorter.cs
- TypeListConverter.cs
- XsdBuildProvider.cs
- BigInt.cs
- BufferModeSettings.cs
- RemotingServices.cs
- OleDbErrorCollection.cs
- CryptoConfig.cs
- PolicyLevel.cs
- SQLInt16.cs
- WindowsListViewGroupHelper.cs
- CacheEntry.cs
- WarningException.cs
- ObjectQueryState.cs
- ProcessHostConfigUtils.cs
- RuleSetDialog.Designer.cs
- SymbolDocumentGenerator.cs
- CounterSetInstance.cs
- ConnectivityStatus.cs
- SemanticTag.cs
- TextRunProperties.cs
- PageHandlerFactory.cs
- SessionStateUtil.cs
- EntityFunctions.cs
- BindableAttribute.cs
- TTSEngineTypes.cs
- RadioButtonList.cs
- cookieexception.cs
- ProgramNode.cs
- HtmlInputControl.cs
- ContainerActivationHelper.cs
- SqlInfoMessageEvent.cs
- BindingWorker.cs
- Item.cs
- Quad.cs
- SpellerError.cs
- ObjectManager.cs
- DataGridViewColumnConverter.cs
- DataTableReaderListener.cs
- StringCollection.cs
- EncryptedType.cs
- TransformGroup.cs
- Shape.cs
- GeometryGroup.cs
- AuthenticationSection.cs
- InternalsVisibleToAttribute.cs
- DataGridRow.cs
- Dictionary.cs
- VirtualizingStackPanel.cs
- HtmlInputCheckBox.cs
- TemplateAction.cs
- StrongNameIdentityPermission.cs
- RectConverter.cs
- TailPinnedEventArgs.cs
- Stylus.cs
- TrustManagerMoreInformation.cs
- RMPermissions.cs
- AttachmentCollection.cs
- GridViewHeaderRowPresenter.cs
- SymDocumentType.cs
- LookupNode.cs
- NetworkStream.cs
- SessionStateContainer.cs
- PerfCounterSection.cs
- ConnectionManagementElement.cs
- EastAsianLunisolarCalendar.cs
- RootProfilePropertySettingsCollection.cs
- XPathNodeInfoAtom.cs
- UseAttributeSetsAction.cs
- HttpCookiesSection.cs
- NullRuntimeConfig.cs
- FlowDocumentFormatter.cs
- PopupControlService.cs
- PatternMatcher.cs
- DrawingImage.cs
- TimeoutException.cs
- FontWeightConverter.cs
- PresentationAppDomainManager.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- ChangesetResponse.cs
- SortedDictionary.cs
- CodeNamespaceImportCollection.cs
- CryptoConfig.cs
- CalendarButtonAutomationPeer.cs