Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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); } } } // 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
- MemberDescriptor.cs
- StringResourceManager.cs
- TextRenderer.cs
- AccessorTable.cs
- SymbolEqualComparer.cs
- SQLDoubleStorage.cs
- TypeBuilder.cs
- Html32TextWriter.cs
- FixedDSBuilder.cs
- ActiveXSite.cs
- DeliveryRequirementsAttribute.cs
- TraceContextEventArgs.cs
- SiteMapDataSourceView.cs
- SqlBulkCopyColumnMapping.cs
- NameSpaceExtractor.cs
- ActivityInstance.cs
- DesignerDataParameter.cs
- WebPartsPersonalization.cs
- AssociatedControlConverter.cs
- sitestring.cs
- TextLine.cs
- StringDictionary.cs
- MsmqInputMessage.cs
- HelloMessage11.cs
- HtmlShim.cs
- Constants.cs
- MemberListBinding.cs
- PrintPageEvent.cs
- ClientRuntimeConfig.cs
- ToolStripLocationCancelEventArgs.cs
- DefinitionBase.cs
- listitem.cs
- IPAddress.cs
- SerializationSectionGroup.cs
- TextSelectionProcessor.cs
- RectangleF.cs
- TextBoxDesigner.cs
- XmlMtomReader.cs
- Descriptor.cs
- ObservableDictionary.cs
- LoginDesigner.cs
- ConstantCheck.cs
- InputMethodStateChangeEventArgs.cs
- XmlSchemaNotation.cs
- ZoneLinkButton.cs
- AnimationClock.cs
- WebPartTracker.cs
- XmlFormatWriterGenerator.cs
- DelegatingConfigHost.cs
- LazyTextWriterCreator.cs
- RadioButtonDesigner.cs
- DataTableMappingCollection.cs
- OpacityConverter.cs
- DuplexChannelBinder.cs
- SoapProtocolImporter.cs
- Comparer.cs
- XmlChildEnumerator.cs
- externdll.cs
- OutOfMemoryException.cs
- TrackingProfileCache.cs
- InfocardExtendedInformationEntry.cs
- Buffer.cs
- MobilePage.cs
- TemplateField.cs
- MenuStrip.cs
- RelationshipEndCollection.cs
- FullTextLine.cs
- SiteMapSection.cs
- DataGridViewComboBoxEditingControl.cs
- DataGridViewAutoSizeModeEventArgs.cs
- BreakRecordTable.cs
- MarkerProperties.cs
- HtmlSelect.cs
- FamilyMapCollection.cs
- ProjectionPruner.cs
- ColorConvertedBitmapExtension.cs
- MessagePropertyFilter.cs
- MetadataArtifactLoaderFile.cs
- ContextStaticAttribute.cs
- PageThemeBuildProvider.cs
- DeviceOverridableAttribute.cs
- newitemfactory.cs
- XmlFormatExtensionPrefixAttribute.cs
- ConstrainedGroup.cs
- SslStreamSecurityBindingElement.cs
- TailCallAnalyzer.cs
- AsyncMethodInvoker.cs
- SQLGuid.cs
- LinqDataSourceStatusEventArgs.cs
- X509Utils.cs
- XmlCompatibilityReader.cs
- FontFamilyConverter.cs
- AnnotationResourceCollection.cs
- Rule.cs
- PointCollection.cs
- MetadataItemSerializer.cs
- DataGridViewCellCancelEventArgs.cs
- GroupLabel.cs
- ColumnBinding.cs
- EntityDataSourceReferenceGroup.cs