Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RtfToXamlReader.cs
- ImagingCache.cs
- ObjectViewQueryResultData.cs
- NetworkStream.cs
- EntityContainer.cs
- PeerEndPoint.cs
- ExcCanonicalXml.cs
- MethodToken.cs
- HandlerBase.cs
- EntityClientCacheEntry.cs
- DispatchChannelSink.cs
- SharedPersonalizationStateInfo.cs
- XsdDateTime.cs
- GenericEnumerator.cs
- ComponentChangingEvent.cs
- Boolean.cs
- SessionStateItemCollection.cs
- AbandonedMutexException.cs
- ScriptingJsonSerializationSection.cs
- Pts.cs
- StrokeRenderer.cs
- CharEntityEncoderFallback.cs
- TranslateTransform.cs
- VirtualDirectoryMappingCollection.cs
- AuthenticateEventArgs.cs
- SqlConnectionHelper.cs
- OLEDB_Util.cs
- AuthenticationServiceManager.cs
- SqlInternalConnection.cs
- FileNotFoundException.cs
- AuthenticatingEventArgs.cs
- Util.cs
- GridViewEditEventArgs.cs
- ConfigsHelper.cs
- TypeBinaryExpression.cs
- CustomLineCap.cs
- Substitution.cs
- SingleKeyFrameCollection.cs
- DataBoundControlAdapter.cs
- ToolStripRenderEventArgs.cs
- Label.cs
- Utility.cs
- SpotLight.cs
- WebBrowserNavigatedEventHandler.cs
- InstanceOwnerQueryResult.cs
- PageCodeDomTreeGenerator.cs
- DataRelationPropertyDescriptor.cs
- SuppressIldasmAttribute.cs
- StringReader.cs
- ControlAdapter.cs
- HttpServerProtocol.cs
- ColorContextHelper.cs
- KeyConstraint.cs
- IdleTimeoutMonitor.cs
- XmlDataSourceNodeDescriptor.cs
- GeneralTransform3DCollection.cs
- HttpStreamFormatter.cs
- Encoding.cs
- Comparer.cs
- WmlObjectListAdapter.cs
- DataBindingCollection.cs
- XhtmlBasicValidationSummaryAdapter.cs
- FontDialog.cs
- SizeAnimationBase.cs
- RootProfilePropertySettingsCollection.cs
- QilInvoke.cs
- DBSqlParser.cs
- DataGridViewRowHeaderCell.cs
- Parsers.cs
- BulletChrome.cs
- RuleSetBrowserDialog.cs
- PartitionedStreamMerger.cs
- WebPartDisplayModeCancelEventArgs.cs
- xmlfixedPageInfo.cs
- StateWorkerRequest.cs
- ErrorWebPart.cs
- VisualBasicSettingsHandler.cs
- ScrollBar.cs
- HostedNamedPipeTransportManager.cs
- TypeHelpers.cs
- DiscoveryClientDuplexChannel.cs
- WorkflowOperationContext.cs
- DataSet.cs
- WhileDesigner.xaml.cs
- KoreanCalendar.cs
- UserInitiatedRoutedEventPermission.cs
- UnknownWrapper.cs
- ImportFileRequest.cs
- StsCommunicationException.cs
- UriScheme.cs
- UnauthorizedAccessException.cs
- InternalSafeNativeMethods.cs
- ListBindingHelper.cs
- LazyTextWriterCreator.cs
- TrustLevel.cs
- PrincipalPermission.cs
- ConfigurationValue.cs
- RootProfilePropertySettingsCollection.cs
- HtmlControl.cs
- ErrorRuntimeConfig.cs