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
- DropDownHolder.cs
- CaseInsensitiveOrdinalStringComparer.cs
- SystemTcpStatistics.cs
- ScriptReferenceBase.cs
- RuleRef.cs
- DrawingState.cs
- Table.cs
- FamilyMapCollection.cs
- HtmlElement.cs
- MobileContainerDesigner.cs
- SystemNetworkInterface.cs
- CurrentChangingEventArgs.cs
- RepeatInfo.cs
- Schedule.cs
- XmlSchemaInfo.cs
- BuildManagerHost.cs
- State.cs
- ColorConverter.cs
- MouseOverProperty.cs
- CngAlgorithm.cs
- GuidTagList.cs
- SecurityToken.cs
- DataSourceGeneratorException.cs
- DoubleLinkList.cs
- VectorKeyFrameCollection.cs
- ObjectIDGenerator.cs
- HttpApplication.cs
- SourceElementsCollection.cs
- TypeBuilder.cs
- TogglePattern.cs
- WebPartTracker.cs
- DbProviderFactoriesConfigurationHandler.cs
- KerberosTicketHashIdentifierClause.cs
- MultipartIdentifier.cs
- DoubleConverter.cs
- Line.cs
- Polygon.cs
- ControlBuilderAttribute.cs
- TextBoxAutoCompleteSourceConverter.cs
- PeerApplication.cs
- TransportOutputChannel.cs
- DashStyles.cs
- UserControl.cs
- BitmapEffect.cs
- OutKeywords.cs
- CornerRadiusConverter.cs
- EmptyEnumerable.cs
- RecognizedWordUnit.cs
- DbDataReader.cs
- HttpProfileGroupBase.cs
- BindingExpressionBase.cs
- TextLineResult.cs
- WebBrowserPermission.cs
- InvalidPropValue.cs
- JoinGraph.cs
- SystemParameters.cs
- ResourceReferenceExpressionConverter.cs
- GenericRootAutomationPeer.cs
- ProcessProtocolHandler.cs
- BinaryFormatter.cs
- FormParameter.cs
- SoapHeaderAttribute.cs
- CompModSwitches.cs
- ObjectDataSourceFilteringEventArgs.cs
- CollectionConverter.cs
- MemberPath.cs
- WebPartManagerInternals.cs
- PropertyGridEditorPart.cs
- MappingMetadataHelper.cs
- SecureEnvironment.cs
- Expr.cs
- IPGlobalProperties.cs
- TaiwanLunisolarCalendar.cs
- _ChunkParse.cs
- PortCache.cs
- HttpListenerRequestUriBuilder.cs
- Delegate.cs
- Pkcs7Recipient.cs
- DataGridViewTextBoxEditingControl.cs
- TimelineGroup.cs
- MenuItemAutomationPeer.cs
- BinaryFormatter.cs
- OperandQuery.cs
- QueryParameter.cs
- ProfilePropertyNameValidator.cs
- Application.cs
- RegexWorker.cs
- SmtpAuthenticationManager.cs
- FontConverter.cs
- CriticalFinalizerObject.cs
- FormsIdentity.cs
- WhereaboutsReader.cs
- _UriTypeConverter.cs
- Utils.cs
- sitestring.cs
- SystemUdpStatistics.cs
- OutOfMemoryException.cs
- DateTimeFormatInfoScanner.cs
- OleDbParameterCollection.cs
- GC.cs