Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / CompMod / System / ComponentModel / Design / Serialization / ComponentSerializationService.cs / 1 / ComponentSerializationService.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.ComponentModel.Design.Serialization { using System.Collections; using System.ComponentModel; using System.IO; using System.Security.Permissions; ////// This class serializes a set of components or serializable objects into a /// serialization store. The store can then be deserialized at a later /// date. ComponentSerializationService differs from other serialization /// schemes in that the serialization format is opaque, and it allows for /// partial serialization of objects. For example, you can choose to /// serialize only selected properties for an object. /// /// This class is abstract. Typically a DesignerLoader will provide a /// concrete implementation of this class and add it as a service to /// its DesignSurface. This allows objects to be serialized in the /// format best suited for them. /// [HostProtection(SharedState = true)] public abstract class ComponentSerializationService { ////// This method creates a new SerializationStore. The serialization store can /// be passed to any of the various Serialize methods to build up serialization /// state for a group of objects. /// public abstract SerializationStore CreateStore(); ////// This method loads a SerializationStore and from the given /// stream. This store can then be used to deserialize objects by passing it to /// the various Deserialize methods. /// public abstract SerializationStore LoadStore(Stream stream); ////// This method serializes the given object to the store. The store /// can be used to serialize more than one object by calling this method /// more than once. /// public abstract void Serialize(SerializationStore store, object value); ////// Normal serialization only serializes values that differ from the component's default state. /// This provides the most compact serialization mechanism but assumes that during deserilalization /// a new, freshly created object will be used. If an existing object is used properties that /// contained default values during serialization would not be reset back to their defaults. /// The SerializeAbsolute method does not require this assumption on the deserializing end. /// Instead, it saves data in the serialization store about default values as well so that /// deserialization can reset non-default properties back to their default values. This is /// especially true for collection objects, where the collections are either cleared and /// items re-added, or individual items are removed and added. /// public abstract void SerializeAbsolute(SerializationStore store, object value); ////// This method serializes the given member on the given object. This method /// can be invoked multiple times for the same object to build up a list of /// serialized members within the serialization store. The member generally /// has to be a property or an event. /// public abstract void SerializeMember(SerializationStore store, object owningObject, MemberDescriptor member); ////// This method serializes the given member on the given object, /// but also serializes the member if it contains the default value. /// Note that for some members, containing the default value and setting /// the same value back to the member are different concepts. For example, /// if a property inherits its value from a parent object if no local value /// is set, setting the value back to the property can may not be what is desired. /// SerializeMemberAbsolute takes this into account and would clear the state of /// the property in this case. /// public abstract void SerializeMemberAbsolute(SerializationStore store, object owningObject, MemberDescriptor member); ////// This method deserializes the given store to produce a collection of /// objects contained within it. If a container is provided, objects /// that are created that implement IComponent will be added to the container. /// public abstract ICollection Deserialize(SerializationStore store); ////// This method deserializes the given store to produce a collection of /// objects contained within it. If a container is provided, objects /// that are created that implement IComponent will be added to the container. /// public abstract ICollection Deserialize(SerializationStore store, IContainer container); ////// This method deserializes the given store, but rather than produce /// new objects, the data in the store is applied to an existing /// set of objects that are taken from the provided container. This /// allows the caller to pre-create an object however it sees fit. If /// an object has deserialization state and the object is not named in /// the set of existing objects, a new object will be created. If that /// object also implements IComponent, it will be added to the given /// container. Objects in the container must have names that /// match objects in the serialization store in order for an existing /// object to be used. If validateRecycledTypes is true it is guaranteed /// that the deserialization will only work if applied to an object of the /// same type. /// public abstract void DeserializeTo(SerializationStore store, IContainer container, bool validateRecycledTypes, bool applyDefaults); public void DeserializeTo(SerializationStore store, IContainer container) { DeserializeTo(store, container, true, true); } public void DeserializeTo(SerializationStore store, IContainer container, bool validateRecycledTypes) { DeserializeTo(store, container, validateRecycledTypes, true); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.ComponentModel.Design.Serialization { using System.Collections; using System.ComponentModel; using System.IO; using System.Security.Permissions; ////// This class serializes a set of components or serializable objects into a /// serialization store. The store can then be deserialized at a later /// date. ComponentSerializationService differs from other serialization /// schemes in that the serialization format is opaque, and it allows for /// partial serialization of objects. For example, you can choose to /// serialize only selected properties for an object. /// /// This class is abstract. Typically a DesignerLoader will provide a /// concrete implementation of this class and add it as a service to /// its DesignSurface. This allows objects to be serialized in the /// format best suited for them. /// [HostProtection(SharedState = true)] public abstract class ComponentSerializationService { ////// This method creates a new SerializationStore. The serialization store can /// be passed to any of the various Serialize methods to build up serialization /// state for a group of objects. /// public abstract SerializationStore CreateStore(); ////// This method loads a SerializationStore and from the given /// stream. This store can then be used to deserialize objects by passing it to /// the various Deserialize methods. /// public abstract SerializationStore LoadStore(Stream stream); ////// This method serializes the given object to the store. The store /// can be used to serialize more than one object by calling this method /// more than once. /// public abstract void Serialize(SerializationStore store, object value); ////// Normal serialization only serializes values that differ from the component's default state. /// This provides the most compact serialization mechanism but assumes that during deserilalization /// a new, freshly created object will be used. If an existing object is used properties that /// contained default values during serialization would not be reset back to their defaults. /// The SerializeAbsolute method does not require this assumption on the deserializing end. /// Instead, it saves data in the serialization store about default values as well so that /// deserialization can reset non-default properties back to their default values. This is /// especially true for collection objects, where the collections are either cleared and /// items re-added, or individual items are removed and added. /// public abstract void SerializeAbsolute(SerializationStore store, object value); ////// This method serializes the given member on the given object. This method /// can be invoked multiple times for the same object to build up a list of /// serialized members within the serialization store. The member generally /// has to be a property or an event. /// public abstract void SerializeMember(SerializationStore store, object owningObject, MemberDescriptor member); ////// This method serializes the given member on the given object, /// but also serializes the member if it contains the default value. /// Note that for some members, containing the default value and setting /// the same value back to the member are different concepts. For example, /// if a property inherits its value from a parent object if no local value /// is set, setting the value back to the property can may not be what is desired. /// SerializeMemberAbsolute takes this into account and would clear the state of /// the property in this case. /// public abstract void SerializeMemberAbsolute(SerializationStore store, object owningObject, MemberDescriptor member); ////// This method deserializes the given store to produce a collection of /// objects contained within it. If a container is provided, objects /// that are created that implement IComponent will be added to the container. /// public abstract ICollection Deserialize(SerializationStore store); ////// This method deserializes the given store to produce a collection of /// objects contained within it. If a container is provided, objects /// that are created that implement IComponent will be added to the container. /// public abstract ICollection Deserialize(SerializationStore store, IContainer container); ////// This method deserializes the given store, but rather than produce /// new objects, the data in the store is applied to an existing /// set of objects that are taken from the provided container. This /// allows the caller to pre-create an object however it sees fit. If /// an object has deserialization state and the object is not named in /// the set of existing objects, a new object will be created. If that /// object also implements IComponent, it will be added to the given /// container. Objects in the container must have names that /// match objects in the serialization store in order for an existing /// object to be used. If validateRecycledTypes is true it is guaranteed /// that the deserialization will only work if applied to an object of the /// same type. /// public abstract void DeserializeTo(SerializationStore store, IContainer container, bool validateRecycledTypes, bool applyDefaults); public void DeserializeTo(SerializationStore store, IContainer container) { DeserializeTo(store, container, true, true); } public void DeserializeTo(SerializationStore store, IContainer container, bool validateRecycledTypes) { DeserializeTo(store, container, validateRecycledTypes, true); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KeyboardNavigation.cs
- StackBuilderSink.cs
- UrlMappingsSection.cs
- Trace.cs
- Cloud.cs
- TextDpi.cs
- EntityDataSourceStatementEditor.cs
- EdmComplexPropertyAttribute.cs
- GraphicsContext.cs
- DescendantOverDescendantQuery.cs
- DBCSCodePageEncoding.cs
- UnmanagedHandle.cs
- Preprocessor.cs
- PeerValidationBehavior.cs
- StylusSystemGestureEventArgs.cs
- SqlBuffer.cs
- FormViewDeleteEventArgs.cs
- AssemblyUtil.cs
- SafeNativeMethods.cs
- XmlSchemaExporter.cs
- SoapSchemaImporter.cs
- SQLByte.cs
- ClientType.cs
- ColorPalette.cs
- Point3DCollectionConverter.cs
- IndependentAnimationStorage.cs
- SettingsAttributeDictionary.cs
- GeometryModel3D.cs
- DependencyPropertyKind.cs
- DataGrid.cs
- WebPartZoneCollection.cs
- XmlCharCheckingReader.cs
- ServiceSecurityAuditBehavior.cs
- QilValidationVisitor.cs
- Rect.cs
- RepeatBehaviorConverter.cs
- ManipulationPivot.cs
- MouseWheelEventArgs.cs
- AppSecurityManager.cs
- ChannelServices.cs
- SystemWebExtensionsSectionGroup.cs
- FixedBufferAttribute.cs
- IBuiltInEvidence.cs
- AttachmentCollection.cs
- CapabilitiesPattern.cs
- XPathNavigatorKeyComparer.cs
- TriggerActionCollection.cs
- SslStreamSecurityBindingElement.cs
- AnnotationService.cs
- TreeWalker.cs
- LabelEditEvent.cs
- DataBindingHandlerAttribute.cs
- MinMaxParagraphWidth.cs
- XmlAttributeHolder.cs
- MultiSelectRootGridEntry.cs
- TextCompositionEventArgs.cs
- safelink.cs
- Parser.cs
- SafeLibraryHandle.cs
- CacheMemory.cs
- WebExceptionStatus.cs
- GridViewUpdatedEventArgs.cs
- Int64.cs
- ToolBar.cs
- XslTransform.cs
- IItemProperties.cs
- Vector.cs
- GradientStopCollection.cs
- UnsafeNativeMethods.cs
- DoubleLinkList.cs
- RegistryKey.cs
- PenContext.cs
- AutoGeneratedField.cs
- RemotingAttributes.cs
- ProcessMessagesAsyncResult.cs
- Compensation.cs
- CodeGenerator.cs
- BoolExpressionVisitors.cs
- MimeTypeAttribute.cs
- ParenthesizePropertyNameAttribute.cs
- TextFormattingConverter.cs
- IProvider.cs
- TextParagraphCache.cs
- XslAst.cs
- MouseEventArgs.cs
- FileLogRecord.cs
- ThreadPoolTaskScheduler.cs
- ComMethodElementCollection.cs
- X509Certificate2Collection.cs
- XmlReflectionImporter.cs
- NTAccount.cs
- ActivityBuilderHelper.cs
- EqualityComparer.cs
- PerfService.cs
- ExpandSegment.cs
- EventMap.cs
- ExtendedTransformFactory.cs
- MLangCodePageEncoding.cs
- XPathAncestorQuery.cs
- UncommonField.cs