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
- RelationshipEnd.cs
- UriWriter.cs
- ImageBrush.cs
- Latin1Encoding.cs
- MSAANativeProvider.cs
- CacheMemory.cs
- RouteParser.cs
- ZipIOLocalFileHeader.cs
- TableLayoutPanelCellPosition.cs
- WebServiceFaultDesigner.cs
- BezierSegment.cs
- PolyLineSegment.cs
- Margins.cs
- GeneratedView.cs
- HostAdapter.cs
- BCLDebug.cs
- DefaultParameterValueAttribute.cs
- CodeStatement.cs
- Attributes.cs
- VectorAnimation.cs
- EventLogEntryCollection.cs
- ImageProxy.cs
- SQLRoleProvider.cs
- TextDecorationCollection.cs
- MDIClient.cs
- AdapterDictionary.cs
- PropertyDescriptorGridEntry.cs
- NotificationContext.cs
- httpapplicationstate.cs
- ITextView.cs
- AlternateView.cs
- DispatcherExceptionFilterEventArgs.cs
- VarInfo.cs
- RootBuilder.cs
- DataGridViewCellStyleConverter.cs
- UiaCoreApi.cs
- PrefixQName.cs
- Rfc2898DeriveBytes.cs
- VirtualPath.cs
- HexParser.cs
- ReachSerializer.cs
- DbModificationCommandTree.cs
- XmlILModule.cs
- StringCollectionEditor.cs
- GeometryValueSerializer.cs
- DocumentPage.cs
- Grid.cs
- ParentUndoUnit.cs
- HtmlElement.cs
- FormatterConverter.cs
- TextServicesManager.cs
- MimeReturn.cs
- WhitespaceRuleLookup.cs
- DataColumnMapping.cs
- OdbcEnvironmentHandle.cs
- XmlQualifiedName.cs
- GlyphTypeface.cs
- SystemParameters.cs
- Component.cs
- Source.cs
- EmitterCache.cs
- ThemeableAttribute.cs
- GenericTypeParameterBuilder.cs
- QueryHandler.cs
- UrlAuthorizationModule.cs
- ActionMismatchAddressingException.cs
- ElementMarkupObject.cs
- SystemResources.cs
- QueryOperationResponseOfT.cs
- NetSectionGroup.cs
- RootDesignerSerializerAttribute.cs
- SessionSwitchEventArgs.cs
- StateMachineExecutionState.cs
- DataGrid.cs
- ToolStripLabel.cs
- ReturnValue.cs
- EntityDataSourceWizardForm.cs
- ReferencedCollectionType.cs
- LayoutTableCell.cs
- ToolboxItemCollection.cs
- RepeatBehaviorConverter.cs
- HelpEvent.cs
- StoreItemCollection.Loader.cs
- ApplicationTrust.cs
- MobilePage.cs
- ItemDragEvent.cs
- ValidationErrorCollection.cs
- ReplyChannelAcceptor.cs
- SimpleWebHandlerParser.cs
- TrackingMemoryStream.cs
- WebUtil.cs
- VideoDrawing.cs
- XmlSchemaAll.cs
- SemaphoreSecurity.cs
- OwnerDrawPropertyBag.cs
- Size.cs
- Lasso.cs
- AutomationAttributeInfo.cs
- DbExpressionBuilder.cs
- PointValueSerializer.cs