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
- FileLevelControlBuilderAttribute.cs
- GlobalProxySelection.cs
- SubstitutionList.cs
- PackageStore.cs
- XmlSchemaValidator.cs
- SourceSwitch.cs
- DocumentOrderComparer.cs
- ManifestResourceInfo.cs
- WorkflowWebHostingModule.cs
- SyndicationPerson.cs
- SafeBitVector32.cs
- SqlUserDefinedAggregateAttribute.cs
- SoundPlayer.cs
- FacetValueContainer.cs
- _UncName.cs
- Point3DConverter.cs
- WebConfigurationFileMap.cs
- TextElementEditingBehaviorAttribute.cs
- ObjectManager.cs
- Preprocessor.cs
- HtmlProps.cs
- LineSegment.cs
- MD5CryptoServiceProvider.cs
- EFDataModelProvider.cs
- MimeParameters.cs
- SerializationInfoEnumerator.cs
- InheritanceAttribute.cs
- Expressions.cs
- PackageRelationshipCollection.cs
- SmiRequestExecutor.cs
- ConstructorNeedsTagAttribute.cs
- Registry.cs
- FlowDecisionDesigner.xaml.cs
- URLBuilder.cs
- UrlMappingsSection.cs
- SizeConverter.cs
- XmlDataCollection.cs
- XsdDuration.cs
- AddressHeaderCollection.cs
- SqlTrackingQuery.cs
- ListBase.cs
- OleDbError.cs
- LockCookie.cs
- AddInBase.cs
- CommonDialog.cs
- PagePropertiesChangingEventArgs.cs
- CursorConverter.cs
- HttpListenerPrefixCollection.cs
- XsdDateTime.cs
- ThreadExceptionDialog.cs
- EmptyCollection.cs
- UnauthorizedAccessException.cs
- HttpRawResponse.cs
- SpellCheck.cs
- XmlReflectionMember.cs
- NullableDoubleMinMaxAggregationOperator.cs
- SafeFreeMibTable.cs
- AuthStoreRoleProvider.cs
- PointAnimationUsingPath.cs
- MutexSecurity.cs
- FormsAuthenticationUser.cs
- QualificationDataAttribute.cs
- CodeTypeOfExpression.cs
- VarRemapper.cs
- TcpHostedTransportConfiguration.cs
- SourceFileInfo.cs
- TextServicesDisplayAttribute.cs
- JournalEntryStack.cs
- WinOEToolBoxItem.cs
- HttpListenerContext.cs
- TreeNode.cs
- NetCodeGroup.cs
- BaseUriHelper.cs
- DoubleLink.cs
- Parameter.cs
- OSEnvironmentHelper.cs
- WebPartAuthorizationEventArgs.cs
- ControlPersister.cs
- LinqDataSourceContextData.cs
- SplitterPanel.cs
- HtmlDocument.cs
- FontCacheUtil.cs
- RoleManagerEventArgs.cs
- IsolatedStorage.cs
- DBParameter.cs
- XsltLoader.cs
- Popup.cs
- TableLayoutColumnStyleCollection.cs
- ValueSerializer.cs
- ServerValidateEventArgs.cs
- HtmlCalendarAdapter.cs
- SqlVersion.cs
- WebPartDisplayModeCollection.cs
- NullRuntimeConfig.cs
- DataContractJsonSerializer.cs
- GroupItem.cs
- ValueTable.cs
- ParameterEditorUserControl.cs
- TextReader.cs
- DBConnection.cs