Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Serializer / SimpleTypesSurrogate.cs / 1305376 / SimpleTypesSurrogate.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 SimpleTypesSurrogate //This class is currently used only for Guids. The size diff is 93 bytes per guid over binary formatter //Will add support for other types as well, eventually. internal sealed class SimpleTypesSurrogate : ISerializationSurrogate { enum TypeID : byte { Guid = 1, Null, } void ISerializationSurrogate.GetObjectData(object obj, SerializationInfo info, StreamingContext context) { if (obj.GetType() == typeof(Guid)) { Guid guid = (Guid)obj; info.AddValue("typeID", TypeID.Guid); info.AddValue("bits", guid.ToByteArray()); } } object ISerializationSurrogate.SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { TypeID typeID = (TypeID)info.GetValue("typeID", typeof(TypeID)); if (typeID == TypeID.Guid) return new Guid(info.GetValue("bits", typeof(byte[])) as byte[]); return null; } } #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
- FrameAutomationPeer.cs
- EventRouteFactory.cs
- ConstraintStruct.cs
- MexHttpsBindingElement.cs
- SqlDependencyListener.cs
- RegionData.cs
- PresentationTraceSources.cs
- WebPartMenuStyle.cs
- CellLabel.cs
- DispatcherExceptionFilterEventArgs.cs
- SkinBuilder.cs
- MailSettingsSection.cs
- TypedRowHandler.cs
- recordstate.cs
- CodeNamespaceImport.cs
- SiteMapPathDesigner.cs
- EntityTransaction.cs
- PropertyGridCommands.cs
- MarshalByValueComponent.cs
- TraceSection.cs
- OperatingSystem.cs
- WrapperSecurityCommunicationObject.cs
- SoapServerMethod.cs
- SqlGenericUtil.cs
- SiteMapDesignerDataSourceView.cs
- DbCommandTree.cs
- TrustManagerPromptUI.cs
- CharEnumerator.cs
- Animatable.cs
- WebPartMinimizeVerb.cs
- x509store.cs
- SubclassTypeValidatorAttribute.cs
- XamlFrame.cs
- DeleteMemberBinder.cs
- UseAttributeSetsAction.cs
- SerializationSectionGroup.cs
- BindingElementCollection.cs
- PrintEvent.cs
- VisualTreeUtils.cs
- BaseTreeIterator.cs
- SymbolTable.cs
- MenuItemBindingCollection.cs
- SrgsText.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ProfileBuildProvider.cs
- AssemblySettingAttributes.cs
- ResourceAssociationType.cs
- ImageAnimator.cs
- DataGridItem.cs
- GridPattern.cs
- SystemIPAddressInformation.cs
- WebBrowserNavigatingEventHandler.cs
- PersonalizationEntry.cs
- LicFileLicenseProvider.cs
- RequestContext.cs
- PeerApplication.cs
- ValidationError.cs
- DataGridViewTextBoxColumn.cs
- WorkflowTransactionService.cs
- SimpleColumnProvider.cs
- DependencyPropertyDescriptor.cs
- WindowsPen.cs
- DiscreteKeyFrames.cs
- PathFigureCollectionConverter.cs
- ObjectStateManager.cs
- TransformGroup.cs
- Material.cs
- TraceInternal.cs
- SecurityElement.cs
- ConfigurationManagerInternalFactory.cs
- sqlpipe.cs
- WebServiceMethodData.cs
- GeometryGroup.cs
- SoapSchemaMember.cs
- WebBaseEventKeyComparer.cs
- RegexEditorDialog.cs
- FreezableCollection.cs
- ForwardPositionQuery.cs
- FixedSOMFixedBlock.cs
- ListBoxItemAutomationPeer.cs
- HostingPreferredMapPath.cs
- WebEncodingValidatorAttribute.cs
- ClassHandlersStore.cs
- IIS7WorkerRequest.cs
- Point4D.cs
- PaintValueEventArgs.cs
- DataServiceQueryException.cs
- XmlLoader.cs
- TriggerCollection.cs
- CurrencyManager.cs
- PartialList.cs
- AppliedDeviceFiltersDialog.cs
- ProxyWebPartManager.cs
- LinqDataView.cs
- SqlDataSourceCache.cs
- DataGridViewImageCell.cs
- ContentElementAutomationPeer.cs
- IResourceProvider.cs
- DataGridViewRowCancelEventArgs.cs
- RuleElement.cs