Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Runtime / Serialization / SerializationObjectManager.cs / 1 / SerializationObjectManager.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: SerializationObjectManager ** ** ** Purpose: Encapsulates serialization time management, mainly invoking serialization events ** ** ============================================================*/ namespace System.Runtime.Serialization { using System; using System.Collections; using System.Runtime.Serialization; using System.Security.Permissions; public sealed class SerializationObjectManager{ private Hashtable m_objectSeenTable = new Hashtable(); // Table to keep track of objects [OnSerializing] has been called on private SerializationEventHandler m_onSerializedHandler; private StreamingContext m_context; public SerializationObjectManager(StreamingContext context) { m_context = context; m_objectSeenTable = new Hashtable(); } [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)] public void RegisterObject(Object obj) { // Invoke OnSerializing for this object SerializationEvents cache = SerializationEventsCache.GetSerializationEventsForType(obj.GetType()); // Check to make sure type has serializing events if (cache.HasOnSerializingEvents) { // Check to see if we have invoked the events on the object if (m_objectSeenTable[obj] == null) { m_objectSeenTable[obj] = true; // Invoke the events cache.InvokeOnSerializing(obj, m_context); // Register for OnSerialized event AddOnSerialized(obj); } } } public void RaiseOnSerializedEvent() { if (m_onSerializedHandler != null) { m_onSerializedHandler(m_context); } } private void AddOnSerialized(Object obj) { SerializationEvents cache = SerializationEventsCache.GetSerializationEventsForType(obj.GetType()); m_onSerializedHandler = cache.AddOnSerialized(obj, m_onSerializedHandler); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReferenceConverter.cs
- QuadraticBezierSegment.cs
- MasterPage.cs
- CmsInterop.cs
- AccessDataSourceView.cs
- DbConnectionPoolOptions.cs
- FrameworkElementAutomationPeer.cs
- Exceptions.cs
- DecodeHelper.cs
- baseshape.cs
- SqlXml.cs
- CharacterBuffer.cs
- SplineQuaternionKeyFrame.cs
- RootContext.cs
- NetMsmqBindingElement.cs
- InkCanvasInnerCanvas.cs
- TransformCollection.cs
- HttpValueCollection.cs
- altserialization.cs
- XmlTextEncoder.cs
- DeflateEmulationStream.cs
- AutoGeneratedField.cs
- DPCustomTypeDescriptor.cs
- ToolStripSettings.cs
- ProviderCollection.cs
- ConnectionProviderAttribute.cs
- LocationUpdates.cs
- WebPartZoneBase.cs
- SessionStateSection.cs
- COM2ICategorizePropertiesHandler.cs
- _LocalDataStore.cs
- ScopedMessagePartSpecification.cs
- ToolStripArrowRenderEventArgs.cs
- SerialErrors.cs
- Activator.cs
- MulticastNotSupportedException.cs
- SqlProfileProvider.cs
- Membership.cs
- StructuralComparisons.cs
- SystemInfo.cs
- Transaction.cs
- AccessorTable.cs
- WeakReferenceEnumerator.cs
- BoundingRectTracker.cs
- DetectRunnableInstancesTask.cs
- WindowHideOrCloseTracker.cs
- WebServiceData.cs
- SafeNativeMemoryHandle.cs
- ImportCatalogPart.cs
- AttributeCollection.cs
- XamlTemplateSerializer.cs
- QueryGeneratorBase.cs
- ImpersonateTokenRef.cs
- SecurityAlgorithmSuite.cs
- X509ChainElement.cs
- XmlHierarchicalEnumerable.cs
- HyperLinkField.cs
- returneventsaver.cs
- CompositionAdorner.cs
- PixelShader.cs
- FileLoadException.cs
- KnownBoxes.cs
- TraceSection.cs
- FileSystemInfo.cs
- CodeRegionDirective.cs
- WindowsStatic.cs
- SafeTimerHandle.cs
- AppDomainAttributes.cs
- MessageParameterAttribute.cs
- DNS.cs
- Slider.cs
- RenderCapability.cs
- CrossAppDomainChannel.cs
- NativeMethods.cs
- AssemblyFilter.cs
- CodeIdentifier.cs
- Semaphore.cs
- TemplateLookupAction.cs
- Activity.cs
- AvTrace.cs
- DateTimeConverter.cs
- RefExpr.cs
- Point3DCollection.cs
- InstanceOwnerException.cs
- ParsedAttributeCollection.cs
- PackWebResponse.cs
- SecurityKeyType.cs
- EDesignUtil.cs
- BoolLiteral.cs
- WindowsListViewGroup.cs
- InternalBufferManager.cs
- ItemCollection.cs
- ShapeTypeface.cs
- MapPathBasedVirtualPathProvider.cs
- CodeTypeParameterCollection.cs
- DbProviderFactories.cs
- EnumValidator.cs
- FocusChangedEventArgs.cs
- ForwardPositionQuery.cs
- DeobfuscatingStream.cs