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
- ListMarkerSourceInfo.cs
- IFlowDocumentViewer.cs
- SurrogateChar.cs
- PipeStream.cs
- DataColumnCollection.cs
- OptimizerPatterns.cs
- Italic.cs
- TrackingCondition.cs
- PropertyTabChangedEvent.cs
- HtmlTernaryTree.cs
- DirectoryNotFoundException.cs
- CombinedGeometry.cs
- WorkflowWebHostingModule.cs
- EllipseGeometry.cs
- XmlChildNodes.cs
- DocumentAutomationPeer.cs
- DataGridColumnHeader.cs
- AbstractExpressions.cs
- ToggleButtonAutomationPeer.cs
- FixedDocumentSequencePaginator.cs
- EdmItemError.cs
- ForwardPositionQuery.cs
- WebPartDescription.cs
- InsufficientMemoryException.cs
- CrossAppDomainChannel.cs
- BrowserInteropHelper.cs
- GPStream.cs
- UnauthorizedWebPart.cs
- PolyLineSegmentFigureLogic.cs
- TextHidden.cs
- TextTreeRootTextBlock.cs
- ExtenderControl.cs
- FileSystemWatcher.cs
- ChannelDispatcherCollection.cs
- TagPrefixCollection.cs
- ToolStripProgressBar.cs
- HttpServerChannel.cs
- SqlDelegatedTransaction.cs
- XmlSerializationGeneratedCode.cs
- RequestCachePolicy.cs
- Bold.cs
- SafeBitVector32.cs
- ObjectKeyFrameCollection.cs
- TypefaceMap.cs
- BitVec.cs
- RuleSettingsCollection.cs
- XmlWriterSettings.cs
- TextBlockAutomationPeer.cs
- PointLightBase.cs
- ClientTargetCollection.cs
- MetafileHeaderWmf.cs
- DBConnection.cs
- UserCancellationException.cs
- Bold.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- UnionCqlBlock.cs
- StringOutput.cs
- GenericAuthenticationEventArgs.cs
- VisualBasicSettingsHandler.cs
- VectorAnimationBase.cs
- DataList.cs
- Hex.cs
- EventProviderWriter.cs
- CounterCreationData.cs
- TableLayoutCellPaintEventArgs.cs
- XmlDictionaryWriter.cs
- PermissionSetTriple.cs
- ServiceAuthorizationManager.cs
- smtpconnection.cs
- ReadOnlyDataSource.cs
- Logging.cs
- _Rfc2616CacheValidators.cs
- ProgressBar.cs
- UnicodeEncoding.cs
- RC2.cs
- OuterGlowBitmapEffect.cs
- StandardToolWindows.cs
- SectionInput.cs
- OptimizedTemplateContentHelper.cs
- AppDomainAttributes.cs
- _OSSOCK.cs
- LockCookie.cs
- AttachedAnnotationChangedEventArgs.cs
- Control.cs
- CursorEditor.cs
- DataGridViewRowsAddedEventArgs.cs
- RequestQueryParser.cs
- CodeParameterDeclarationExpression.cs
- LinearKeyFrames.cs
- XslVisitor.cs
- InkCanvasSelection.cs
- SimpleWebHandlerParser.cs
- DataTransferEventArgs.cs
- UserControlDesigner.cs
- OLEDB_Enum.cs
- Descriptor.cs
- SystemFonts.cs
- RuntimeConfig.cs
- ReadOnlyDictionary.cs
- X509Utils.cs