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
- Point.cs
- XPathSelfQuery.cs
- SmtpClient.cs
- ViewBase.cs
- SQLBinaryStorage.cs
- DocumentGridPage.cs
- ShapingWorkspace.cs
- AnnouncementClient.cs
- StylusPointProperty.cs
- XamlBrushSerializer.cs
- ObjectQueryExecutionPlan.cs
- FlowLayout.cs
- TextDecorationCollectionConverter.cs
- SamlAuthorityBinding.cs
- CheckBox.cs
- Table.cs
- Popup.cs
- OleDbConnectionInternal.cs
- ExceptionHandler.cs
- ComplexLine.cs
- InputElement.cs
- ButtonColumn.cs
- DiagnosticsConfigurationHandler.cs
- CodeNamespace.cs
- WebPageTraceListener.cs
- MultiView.cs
- ClientRoleProvider.cs
- CodeDOMUtility.cs
- AuthenticationModuleElement.cs
- UnsafeNativeMethods.cs
- UriTemplateMatch.cs
- CompModSwitches.cs
- Propagator.cs
- CompiledQueryCacheEntry.cs
- GreenMethods.cs
- SymLanguageType.cs
- AxisAngleRotation3D.cs
- AssociatedControlConverter.cs
- RunClient.cs
- AsymmetricSignatureFormatter.cs
- MessageQueueTransaction.cs
- ExpressionBuilder.cs
- OdbcConnectionStringbuilder.cs
- TextParagraphCache.cs
- PlatformCulture.cs
- PrintingPermissionAttribute.cs
- WebBrowser.cs
- PermissionSet.cs
- CoTaskMemUnicodeSafeHandle.cs
- StrokeDescriptor.cs
- SubqueryTrackingVisitor.cs
- HtmlSelect.cs
- ArraySubsetEnumerator.cs
- Renderer.cs
- HtmlInputSubmit.cs
- XmlBaseReader.cs
- ServerReliableChannelBinder.cs
- InvalidCastException.cs
- DefaultBinder.cs
- FilteredDataSetHelper.cs
- RenamedEventArgs.cs
- PathParser.cs
- _SingleItemRequestCache.cs
- NativeDirectoryServicesQueryAPIs.cs
- TextRangeEditTables.cs
- ZipIOLocalFileHeader.cs
- DayRenderEvent.cs
- HashAlgorithm.cs
- ProfileModule.cs
- CanonicalXml.cs
- PrefixQName.cs
- MediaScriptCommandRoutedEventArgs.cs
- TreeNode.cs
- CqlLexer.cs
- QueryPageSettingsEventArgs.cs
- RowVisual.cs
- SizeChangedEventArgs.cs
- DtdParser.cs
- ReadOnlyNameValueCollection.cs
- MessageSmuggler.cs
- DataProtectionSecurityStateEncoder.cs
- RoleGroupCollection.cs
- DrawingServices.cs
- ComponentSerializationService.cs
- DurableEnlistmentState.cs
- SHA384.cs
- DrawingImage.cs
- DataGridViewElement.cs
- FastEncoderWindow.cs
- securestring.cs
- SignedXml.cs
- SHA1CryptoServiceProvider.cs
- EventsTab.cs
- AuthenticationConfig.cs
- InputBuffer.cs
- Clause.cs
- MenuEventArgs.cs
- BitmapEffectInput.cs
- NullRuntimeConfig.cs
- PropertyNames.cs