Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Serialization / SerializationObjectManager.cs / 1305376 / 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(); } [System.Security.SecurityCritical] // auto-generated_required 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValidationSummary.cs
- WebDescriptionAttribute.cs
- ToolStripItemClickedEventArgs.cs
- Clause.cs
- SoapTypeAttribute.cs
- PrinterSettings.cs
- TraceHandlerErrorFormatter.cs
- StatusBarDrawItemEvent.cs
- EncoderBestFitFallback.cs
- TextTreeTextNode.cs
- PackageDigitalSignatureManager.cs
- XsdBuilder.cs
- OdbcEnvironmentHandle.cs
- GridItem.cs
- WorkerRequest.cs
- FormattedText.cs
- LineServices.cs
- DataGridDesigner.cs
- SudsParser.cs
- ResourceReader.cs
- FontWeights.cs
- PerspectiveCamera.cs
- SoapCodeExporter.cs
- SystemParameters.cs
- printdlgexmarshaler.cs
- AdornerHitTestResult.cs
- ConnectionPoolManager.cs
- OperatorExpressions.cs
- VideoDrawing.cs
- MappedMetaModel.cs
- EntityDataSourceColumn.cs
- DesigntimeLicenseContext.cs
- Int16Animation.cs
- StackBuilderSink.cs
- FileIOPermission.cs
- PersonalizationStateQuery.cs
- ImageMap.cs
- DiscoveryDocumentReference.cs
- tibetanshape.cs
- SharedConnectionWorkflowTransactionService.cs
- CacheChildrenQuery.cs
- ReadOnlyMetadataCollection.cs
- WindowsListViewGroupHelper.cs
- NativeStructs.cs
- OdbcHandle.cs
- DbQueryCommandTree.cs
- PropertyConverter.cs
- BinarySerializer.cs
- CodeTypeParameterCollection.cs
- EditingCommands.cs
- ThreadStateException.cs
- TextAdaptor.cs
- SingleAnimationUsingKeyFrames.cs
- ObjectReaderCompiler.cs
- SizeConverter.cs
- HiddenFieldPageStatePersister.cs
- ButtonBase.cs
- XmlSecureResolver.cs
- MetadataUtilsSmi.cs
- HostExecutionContextManager.cs
- AppliedDeviceFiltersEditor.cs
- IsolationInterop.cs
- PropertyValueUIItem.cs
- NamedElement.cs
- FuncCompletionCallbackWrapper.cs
- EntityDataSourceContextCreatedEventArgs.cs
- ExpressionPrinter.cs
- NamespaceInfo.cs
- JournalEntryStack.cs
- PenLineJoinValidation.cs
- XmlQueryRuntime.cs
- PointAnimationClockResource.cs
- EventLogQuery.cs
- ParserStack.cs
- SchemaTableColumn.cs
- KeyBinding.cs
- GridViewUpdatedEventArgs.cs
- EncoderBestFitFallback.cs
- GridPatternIdentifiers.cs
- PageContent.cs
- ScrollChrome.cs
- DBSchemaRow.cs
- PropertyManager.cs
- OrderablePartitioner.cs
- SqlNotificationRequest.cs
- TextOnlyOutput.cs
- DbConvert.cs
- HierarchicalDataBoundControl.cs
- ContainerParaClient.cs
- PageSettings.cs
- DateTimeSerializationSection.cs
- ServiceChannel.cs
- ModelEditingScope.cs
- RemotingConfigParser.cs
- ColorMap.cs
- XslVisitor.cs
- OleCmdHelper.cs
- xmlformatgeneratorstatics.cs
- InternalConfigRoot.cs
- FrugalList.cs