Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- DataColumnCollection.cs
- ParameterCollection.cs
- CaretElement.cs
- CharacterMetrics.cs
- XmlObjectSerializerReadContext.cs
- WebPartsSection.cs
- elementinformation.cs
- ExceptionRoutedEventArgs.cs
- DummyDataSource.cs
- FunctionGenerator.cs
- NumericUpDownAccelerationCollection.cs
- ListViewDeletedEventArgs.cs
- TimerTable.cs
- ExpanderAutomationPeer.cs
- SelectedGridItemChangedEvent.cs
- sitestring.cs
- ViewStateException.cs
- DebugView.cs
- ComboBoxItem.cs
- WebPartDescriptionCollection.cs
- PeerService.cs
- CaseStatementSlot.cs
- SequenceDesigner.cs
- DataGridViewLayoutData.cs
- HtmlHead.cs
- UrlParameterReader.cs
- ObjectPersistData.cs
- ColumnClickEvent.cs
- CngProvider.cs
- XPathNavigator.cs
- SqlFlattener.cs
- ASCIIEncoding.cs
- CqlIdentifiers.cs
- CopyCodeAction.cs
- FakeModelPropertyImpl.cs
- HiddenFieldPageStatePersister.cs
- OracleBinary.cs
- Debug.cs
- SqlProcedureAttribute.cs
- WebPartPersonalization.cs
- ScriptMethodAttribute.cs
- ObjectItemCachedAssemblyLoader.cs
- XPathNode.cs
- XmlValidatingReader.cs
- _AutoWebProxyScriptEngine.cs
- XMLSyntaxException.cs
- RequestBringIntoViewEventArgs.cs
- XmlSchemaObjectCollection.cs
- RangeBaseAutomationPeer.cs
- AtomServiceDocumentSerializer.cs
- PathFigureCollection.cs
- HtmlInputRadioButton.cs
- StyleModeStack.cs
- MenuEventArgs.cs
- EntityContainerEntitySetDefiningQuery.cs
- ExpandCollapseProviderWrapper.cs
- TextTreeRootNode.cs
- CrossAppDomainChannel.cs
- FamilyTypeface.cs
- KeyboardNavigation.cs
- GridView.cs
- SqlRecordBuffer.cs
- CommandValueSerializer.cs
- MessageEncodingBindingElement.cs
- Bezier.cs
- ToolStripPanelCell.cs
- ACE.cs
- CodePropertyReferenceExpression.cs
- SessionIDManager.cs
- XslNumber.cs
- XmlAttributeCache.cs
- UIServiceHelper.cs
- CultureInfo.cs
- CalculatedColumn.cs
- RowParagraph.cs
- ConditionCollection.cs
- MessageContractAttribute.cs
- SetStoryboardSpeedRatio.cs
- WebPart.cs
- WorkflowTraceTransfer.cs
- DataListItem.cs
- ChangeProcessor.cs
- PostBackTrigger.cs
- StreamWithDictionary.cs
- WeakReferenceList.cs
- ExpressionCopier.cs
- RecordBuilder.cs
- CompiledRegexRunnerFactory.cs
- ExpressionVisitor.cs
- EntityTemplateFactory.cs
- EncryptedXml.cs
- ConfigurationSchemaErrors.cs
- WindowsSecurityToken.cs
- FigureParaClient.cs
- View.cs
- DataGridViewCellStyle.cs
- HwndStylusInputProvider.cs
- WebPartConnectionsConfigureVerb.cs
- UrlAuthFailedErrorFormatter.cs
- IisTraceWebEventProvider.cs