Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PersonalizablePropertyEntry.cs
- Rijndael.cs
- WebPartDisplayModeEventArgs.cs
- RijndaelManaged.cs
- SignatureToken.cs
- AutomationPropertyInfo.cs
- XmlDataSourceNodeDescriptor.cs
- DataGridViewRowCancelEventArgs.cs
- TripleDES.cs
- RuleInfoComparer.cs
- OpenTypeMethods.cs
- HGlobalSafeHandle.cs
- FindCriteriaApril2005.cs
- SizeConverter.cs
- DbMetaDataColumnNames.cs
- ComEventsMethod.cs
- Matrix3D.cs
- ConditionalBranch.cs
- XmlValueConverter.cs
- AncillaryOps.cs
- SystemIPInterfaceStatistics.cs
- Baml2006KeyRecord.cs
- EditorPart.cs
- CollectionEditor.cs
- PaintEvent.cs
- HiddenField.cs
- SelectionList.cs
- SettingsContext.cs
- EventLogPermission.cs
- OleDbDataReader.cs
- ObjectListFieldCollection.cs
- TextViewDesigner.cs
- ToolStripContentPanel.cs
- OverloadGroupAttribute.cs
- SignedXml.cs
- XmlILModule.cs
- CodeGenerator.cs
- PrtCap_Public_Simple.cs
- MemberProjectionIndex.cs
- FilterableAttribute.cs
- ImagingCache.cs
- RectAnimationUsingKeyFrames.cs
- ConfigurationValues.cs
- SubstitutionList.cs
- CodeSubDirectoriesCollection.cs
- Crypto.cs
- RelationalExpressions.cs
- AnalyzedTree.cs
- ZipIOExtraFieldPaddingElement.cs
- RefExpr.cs
- PointCollection.cs
- Int64.cs
- UriSection.cs
- ClientUtils.cs
- DataFormats.cs
- TextRangeEditTables.cs
- HtmlHead.cs
- InstanceHandleReference.cs
- AttributeData.cs
- XmlWriter.cs
- DataControlFieldCell.cs
- SoapAttributes.cs
- SpotLight.cs
- ActivityBindForm.cs
- ApplicationServiceManager.cs
- CookieParameter.cs
- SqlParameterCollection.cs
- MaxSessionCountExceededException.cs
- TemplateBindingExtensionConverter.cs
- InputLanguageManager.cs
- Fault.cs
- LogRecordSequence.cs
- KeyValueInternalCollection.cs
- OleDbPermission.cs
- DefaultClaimSet.cs
- DES.cs
- HMAC.cs
- StringUtil.cs
- CustomValidator.cs
- NegationPusher.cs
- RegistrationServices.cs
- ListenerConfig.cs
- XPathNode.cs
- __ConsoleStream.cs
- RuleConditionDialog.Designer.cs
- XmlWriter.cs
- PartialTrustVisibleAssembliesSection.cs
- TemplateXamlTreeBuilder.cs
- TemplateBindingExtensionConverter.cs
- WSDualHttpBindingCollectionElement.cs
- WebEvents.cs
- ToolStripActionList.cs
- ProxySimple.cs
- TimersDescriptionAttribute.cs
- SafeRegistryKey.cs
- BufferBuilder.cs
- ModifyActivitiesPropertyDescriptor.cs
- CommonDialog.cs
- GeneralTransform.cs
- ParsedAttributeCollection.cs