Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. // // ==--== /*============================================================ ** ** 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Separator.cs
- HttpProfileBase.cs
- SchemaNotation.cs
- TextFormatterContext.cs
- WebBrowserBase.cs
- DefaultTraceListener.cs
- RenderDataDrawingContext.cs
- ToolStripMenuItemCodeDomSerializer.cs
- InfocardExtendedInformationCollection.cs
- SafeEventLogReadHandle.cs
- ClickablePoint.cs
- StructuredType.cs
- AppSettingsExpressionBuilder.cs
- BufferModeSettings.cs
- FormViewUpdatedEventArgs.cs
- WebBrowserNavigatedEventHandler.cs
- SqlInternalConnection.cs
- CorrelationTokenTypeConvertor.cs
- FaultReasonText.cs
- XmlEncApr2001.cs
- BasicExpressionVisitor.cs
- ConnectionPoolManager.cs
- RadioButtonFlatAdapter.cs
- ToolStripSystemRenderer.cs
- FunctionMappingTranslator.cs
- NgenServicingAttributes.cs
- Shape.cs
- BitmapEffectDrawing.cs
- ChangePasswordAutoFormat.cs
- HttpDictionary.cs
- IPHostEntry.cs
- WebPartEditVerb.cs
- DesignerGeometryHelper.cs
- JsonReaderDelegator.cs
- TypeDescriptor.cs
- Polygon.cs
- AssemblyAssociatedContentFileAttribute.cs
- ProfileSettings.cs
- IPCCacheManager.cs
- Point4D.cs
- ControlBindingsConverter.cs
- ReturnType.cs
- ClaimTypes.cs
- DbConnectionStringCommon.cs
- SrgsElementList.cs
- Point3DAnimationUsingKeyFrames.cs
- RootProjectionNode.cs
- DetailsViewPagerRow.cs
- UnsafeNativeMethods.cs
- VectorCollectionConverter.cs
- LinqMaximalSubtreeNominator.cs
- storagemappingitemcollection.viewdictionary.cs
- PkcsMisc.cs
- CultureTable.cs
- AncestorChangedEventArgs.cs
- precedingquery.cs
- AccessViolationException.cs
- XamlBrushSerializer.cs
- OleDbParameterCollection.cs
- SelectionEditor.cs
- QuerySetOp.cs
- EncryptedReference.cs
- IdentityValidationException.cs
- Paragraph.cs
- MediaContextNotificationWindow.cs
- MemoryStream.cs
- ObfuscationAttribute.cs
- AspNetSynchronizationContext.cs
- PageBuildProvider.cs
- AddIn.cs
- TrustLevelCollection.cs
- IDispatchConstantAttribute.cs
- DbConnectionStringCommon.cs
- TextElementEnumerator.cs
- BuildManagerHost.cs
- xml.cs
- StylesEditorDialog.cs
- DataFormats.cs
- RadioButtonStandardAdapter.cs
- ToolStripContentPanelRenderEventArgs.cs
- OdbcEnvironmentHandle.cs
- EntityCommandExecutionException.cs
- CodeArgumentReferenceExpression.cs
- ObfuscationAttribute.cs
- URLMembershipCondition.cs
- GridViewRowCollection.cs
- SafeNativeMethodsCLR.cs
- DataRowComparer.cs
- CodeGen.cs
- BigIntegerStorage.cs
- ContentFilePart.cs
- TreeViewHitTestInfo.cs
- StorageMappingItemCollection.cs
- ButtonPopupAdapter.cs
- RequiredFieldValidator.cs
- D3DImage.cs
- ColumnBinding.cs
- TimeStampChecker.cs
- ClockGroup.cs
- MachineKeySection.cs