Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Runtime / Remoting / ObjectHandle.cs / 1 / ObjectHandle.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ObjectHandle ** ** ** ObjectHandle wraps object references. A Handle allows a ** marshal by value object to be returned through an ** indirection allowing the caller to control when the ** object is loaded into their domain. ** ** ===========================================================*/ namespace System.Runtime.Remoting{ using System; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.Remoting; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Lifetime; [ClassInterface(ClassInterfaceType.AutoDual)] [System.Runtime.InteropServices.ComVisible(true)] public class ObjectHandle: MarshalByRefObject, IObjectHandle { private Object WrappedObject; private ObjectHandle() { } public ObjectHandle(Object o) { WrappedObject = o; } public Object Unwrap() { return WrappedObject; } // ObjectHandle has a finite lifetime. For now the default // lifetime is being used, this can be changed in this method to // specify a custom lifetime. [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] public override Object InitializeLifetimeService() { BCLDebug.Trace("REMOTE", "ObjectHandle.InitializeLifetimeService"); // // If the wrapped object has implemented InitializeLifetimeService to return null, // we don't want to go to the base class (which will result in a lease being // requested from the MarshalByRefObject, which starts up the LeaseManager, // which starts up the ThreadPool, adding three threads to the process. // We check if the wrapped object is a MarshalByRef object, and call InitializeLifetimeServices on it // and if it returns null, we return null. Otherwise we fall back to the old behavior. // MarshalByRefObject mbr = WrappedObject as MarshalByRefObject; if (mbr != null) { Object o = mbr.InitializeLifetimeService(); if (o == null) return null; } ILease lease = (ILease)base.InitializeLifetimeService(); return lease; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ObjectHandle ** ** ** ObjectHandle wraps object references. A Handle allows a ** marshal by value object to be returned through an ** indirection allowing the caller to control when the ** object is loaded into their domain. ** ** ===========================================================*/ namespace System.Runtime.Remoting{ using System; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Runtime.Remoting; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Lifetime; [ClassInterface(ClassInterfaceType.AutoDual)] [System.Runtime.InteropServices.ComVisible(true)] public class ObjectHandle: MarshalByRefObject, IObjectHandle { private Object WrappedObject; private ObjectHandle() { } public ObjectHandle(Object o) { WrappedObject = o; } public Object Unwrap() { return WrappedObject; } // ObjectHandle has a finite lifetime. For now the default // lifetime is being used, this can be changed in this method to // specify a custom lifetime. [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] public override Object InitializeLifetimeService() { BCLDebug.Trace("REMOTE", "ObjectHandle.InitializeLifetimeService"); // // If the wrapped object has implemented InitializeLifetimeService to return null, // we don't want to go to the base class (which will result in a lease being // requested from the MarshalByRefObject, which starts up the LeaseManager, // which starts up the ThreadPool, adding three threads to the process. // We check if the wrapped object is a MarshalByRef object, and call InitializeLifetimeServices on it // and if it returns null, we return null. Otherwise we fall back to the old behavior. // MarshalByRefObject mbr = WrappedObject as MarshalByRefObject; if (mbr != null) { Object o = mbr.InitializeLifetimeService(); if (o == null) return null; } ILease lease = (ILease)base.InitializeLifetimeService(); return lease; } } } // 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
- URL.cs
- PtsPage.cs
- ProfileParameter.cs
- EventProviderTraceListener.cs
- FormsAuthenticationUserCollection.cs
- BitmapSource.cs
- SafeHandles.cs
- ListViewItemMouseHoverEvent.cs
- LoginCancelEventArgs.cs
- CodeCommentStatement.cs
- PassportAuthenticationEventArgs.cs
- InsufficientMemoryException.cs
- DataServiceQueryOfT.cs
- BitmapSourceSafeMILHandle.cs
- HMACSHA512.cs
- Calendar.cs
- BitmapVisualManager.cs
- X509Certificate2.cs
- itemelement.cs
- XmlDownloadManager.cs
- SetStoryboardSpeedRatio.cs
- PtsCache.cs
- FollowerQueueCreator.cs
- SettingsSection.cs
- DecimalConstantAttribute.cs
- HtmlInputButton.cs
- MailAddressCollection.cs
- MessageEventSubscriptionService.cs
- NetSectionGroup.cs
- ObjectIDGenerator.cs
- Triplet.cs
- ServiceHostFactory.cs
- XsltQilFactory.cs
- UIElementParaClient.cs
- Win32.cs
- StorageSetMapping.cs
- XslTransform.cs
- BoundField.cs
- RefreshEventArgs.cs
- WebHostedComPlusServiceHost.cs
- ToolboxDataAttribute.cs
- NonParentingControl.cs
- GC.cs
- AxHostDesigner.cs
- FormatConvertedBitmap.cs
- XPathAncestorIterator.cs
- StringUtil.cs
- RsaKeyGen.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Win32Native.cs
- OleDbDataAdapter.cs
- Tokenizer.cs
- XmlSecureResolver.cs
- HttpWebRequestElement.cs
- InitializerFacet.cs
- ListViewItemMouseHoverEvent.cs
- EmptyQuery.cs
- ProfileSection.cs
- EditorPartCollection.cs
- PeerNameRecordCollection.cs
- RemotingAttributes.cs
- ImmutableCollection.cs
- EventLog.cs
- ConfigurationValidatorBase.cs
- XmlStreamStore.cs
- BoundColumn.cs
- MasterPageBuildProvider.cs
- EntitySqlQueryCacheKey.cs
- CanonicalFontFamilyReference.cs
- OpCodes.cs
- XmlEnumAttribute.cs
- SystemTcpConnection.cs
- AsyncMethodInvoker.cs
- XslAst.cs
- AdornerPresentationContext.cs
- ReadOnlyDictionary.cs
- SoapEnumAttribute.cs
- XPathException.cs
- UniqueEventHelper.cs
- DataGridCell.cs
- DataRelationCollection.cs
- SQLStringStorage.cs
- HtmlInputFile.cs
- BitmapFrame.cs
- QuaternionKeyFrameCollection.cs
- CloudCollection.cs
- XmlSchemaChoice.cs
- NavigationWindowAutomationPeer.cs
- DbDeleteCommandTree.cs
- WebPartVerb.cs
- ContentPosition.cs
- SharedStatics.cs
- XmlException.cs
- BasicExpandProvider.cs
- CorrelationManager.cs
- EntryWrittenEventArgs.cs
- XmlSchemaInclude.cs
- BrowserTree.cs
- TextWriterEngine.cs
- GlyphRunDrawing.cs