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
- UnsafeNativeMethods.cs
- SpecialNameAttribute.cs
- Button.cs
- InnerItemCollectionView.cs
- ProgressBar.cs
- Panel.cs
- RC2.cs
- ServicePoint.cs
- ConfigurationConverterBase.cs
- NullableFloatSumAggregationOperator.cs
- OleDbParameter.cs
- SiteMapNodeCollection.cs
- CodeDirectionExpression.cs
- ArgIterator.cs
- TemplateNameScope.cs
- CorrelationResolver.cs
- InvalidFilterCriteriaException.cs
- ClientOptions.cs
- CmsUtils.cs
- NullableLongMinMaxAggregationOperator.cs
- DoubleStorage.cs
- DataSvcMapFileSerializer.cs
- ChildrenQuery.cs
- MissingManifestResourceException.cs
- DbConnectionPoolIdentity.cs
- MulticastIPAddressInformationCollection.cs
- CommonGetThemePartSize.cs
- ConfigXmlComment.cs
- Monitor.cs
- SessionPageStatePersister.cs
- Authorization.cs
- ListViewItem.cs
- CodeDirectoryCompiler.cs
- MenuAdapter.cs
- CurrentChangingEventArgs.cs
- ResolveNextArgumentWorkItem.cs
- BinaryKeyIdentifierClause.cs
- NativeMethods.cs
- SAPIEngineTypes.cs
- IconHelper.cs
- DbMetaDataCollectionNames.cs
- IdnElement.cs
- GetChildSubtree.cs
- TableAdapterManagerMethodGenerator.cs
- MultiTouchSystemGestureLogic.cs
- LogicalTreeHelper.cs
- ReadOnlyHierarchicalDataSourceView.cs
- NonBatchDirectoryCompiler.cs
- FragmentQuery.cs
- LineBreak.cs
- TreeNode.cs
- DateTimeValueSerializer.cs
- XsdCachingReader.cs
- ItemCollection.cs
- WebPermission.cs
- CompositeScriptReference.cs
- IQueryable.cs
- ToolStripSettings.cs
- XmlDataDocument.cs
- ContentPresenter.cs
- GeneralTransform.cs
- CircleHotSpot.cs
- ContainerAction.cs
- Hyperlink.cs
- MultiBinding.cs
- MailDefinition.cs
- Vector3DAnimationBase.cs
- SmiXetterAccessMap.cs
- DBBindings.cs
- FormsAuthenticationEventArgs.cs
- RequestSecurityToken.cs
- BaseCodePageEncoding.cs
- ExpressionVisitor.cs
- ListDictionaryInternal.cs
- DataGridCell.cs
- OutputCacheModule.cs
- ResourceDictionaryCollection.cs
- elementinformation.cs
- SmtpReplyReader.cs
- RequestQueryProcessor.cs
- AccessorTable.cs
- DefaultAutoFieldGenerator.cs
- ConfigurationException.cs
- FormattedText.cs
- ObjectTypeMapping.cs
- VirtualizingPanel.cs
- DynamicValueConverter.cs
- LabelAutomationPeer.cs
- keycontainerpermission.cs
- LayoutTableCell.cs
- TableLayoutSettings.cs
- DocumentXPathNavigator.cs
- KeyEventArgs.cs
- ProxyGenerator.cs
- RemoteAsymmetricSignatureFormatter.cs
- XPathDocument.cs
- DecimalAnimationBase.cs
- DeviceFilterDictionary.cs
- DbRetry.cs
- OpenCollectionAsyncResult.cs