Code:
/ DotNET / DotNET / 8.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
- FieldToken.cs
- FontClient.cs
- StateValidator.cs
- PipelineModuleStepContainer.cs
- ArgumentValue.cs
- DeviceContext2.cs
- SocketManager.cs
- WebRequestModuleElement.cs
- PathFigureCollection.cs
- Graphics.cs
- SerializableReadOnlyDictionary.cs
- DataSourceProvider.cs
- WebPartMenuStyle.cs
- TriggerCollection.cs
- SqlDataSourceSummaryPanel.cs
- XsltFunctions.cs
- SqlException.cs
- SchemaTableOptionalColumn.cs
- HwndHostAutomationPeer.cs
- InvalidEnumArgumentException.cs
- TreePrinter.cs
- BufferBuilder.cs
- Control.cs
- NullRuntimeConfig.cs
- SequenceFullException.cs
- SchemaImporterExtensionsSection.cs
- CompiledXpathExpr.cs
- SafeWaitHandle.cs
- DiagnosticTrace.cs
- TextBoxLine.cs
- WebBrowsableAttribute.cs
- ProjectionNode.cs
- FloaterBaseParaClient.cs
- TextEditorLists.cs
- WebPartEditVerb.cs
- TreeBuilder.cs
- DataTableClearEvent.cs
- NodeFunctions.cs
- uribuilder.cs
- GeometryDrawing.cs
- PopOutPanel.cs
- WindowsToolbarAsMenu.cs
- StringSorter.cs
- PeerName.cs
- BitmapEffectGroup.cs
- PolicyManager.cs
- ServiceDescriptionData.cs
- CapacityStreamGeometryContext.cs
- WMIGenerator.cs
- StorageMappingItemLoader.cs
- ScriptModule.cs
- ping.cs
- TextDecoration.cs
- MasterPageBuildProvider.cs
- MenuTracker.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- RulePatternOps.cs
- ScrollViewerAutomationPeer.cs
- Rectangle.cs
- ListViewSelectEventArgs.cs
- DrawingVisualDrawingContext.cs
- DiscreteKeyFrames.cs
- NavigationFailedEventArgs.cs
- InvalidProgramException.cs
- CodeObjectCreateExpression.cs
- Int32EqualityComparer.cs
- CheckPair.cs
- LocalizableAttribute.cs
- StreamInfo.cs
- NonBatchDirectoryCompiler.cs
- ColumnPropertiesGroup.cs
- RadioButtonFlatAdapter.cs
- EmissiveMaterial.cs
- SqlUdtInfo.cs
- RouteTable.cs
- WebPartDisplayMode.cs
- ServiceOperationInfoTypeConverter.cs
- SyndicationSerializer.cs
- DataRelationCollection.cs
- ObjectQueryExecutionPlan.cs
- EntityDataSourceWizardForm.cs
- ColorConverter.cs
- TraceSource.cs
- RenderContext.cs
- FullTextBreakpoint.cs
- ConfigurationElement.cs
- IsolatedStorageException.cs
- NativeMethodsOther.cs
- ImageButton.cs
- VisualBasicExpressionConverter.cs
- NativeRightsManagementAPIsStructures.cs
- HttpWebRequestElement.cs
- OdbcConnectionPoolProviderInfo.cs
- NestedContainer.cs
- UriTemplateClientFormatter.cs
- StackOverflowException.cs
- ResumeStoryboard.cs
- Point3D.cs
- ActivityDesignerAccessibleObject.cs
- ToolStripContentPanelRenderEventArgs.cs