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
- Mouse.cs
- EntityDataSourceEntitySetNameItem.cs
- AddingNewEventArgs.cs
- OciHandle.cs
- Error.cs
- TransformationRules.cs
- RC2.cs
- SerializationException.cs
- ContractComponent.cs
- SerializerWriterEventHandlers.cs
- TransformedBitmap.cs
- ListViewUpdatedEventArgs.cs
- XpsLiterals.cs
- Exception.cs
- SafeRightsManagementSessionHandle.cs
- InvalidDataContractException.cs
- WorkflowServiceInstance.cs
- XmlCharCheckingWriter.cs
- OletxTransactionManager.cs
- URLString.cs
- RightsManagementEncryptedStream.cs
- SubMenuStyle.cs
- DragDrop.cs
- BrowserCapabilitiesCodeGenerator.cs
- LinqDataSourceInsertEventArgs.cs
- XmlIlVisitor.cs
- HeaderedItemsControl.cs
- WebPartManager.cs
- DispatcherObject.cs
- Vector.cs
- DesignBindingConverter.cs
- CombinedHttpChannel.cs
- X509SecurityToken.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- EnumBuilder.cs
- FontFamilyIdentifier.cs
- DataGridTable.cs
- WebBrowserBase.cs
- TraceContext.cs
- LogFlushAsyncResult.cs
- PreviewKeyDownEventArgs.cs
- SmtpFailedRecipientsException.cs
- TextParagraphCache.cs
- AssemblyHash.cs
- ApplicationFileCodeDomTreeGenerator.cs
- NavigationEventArgs.cs
- DataTableExtensions.cs
- XslCompiledTransform.cs
- MultipartIdentifier.cs
- KnownBoxes.cs
- WebServicesInteroperability.cs
- OSFeature.cs
- VisualTreeUtils.cs
- FactoryId.cs
- XmlIlVisitor.cs
- SslStreamSecurityBindingElement.cs
- InvalidOperationException.cs
- ConfigurationHandlersInstallComponent.cs
- GroupByQueryOperator.cs
- RegexWorker.cs
- TrustManagerMoreInformation.cs
- SchemaTableColumn.cs
- DbProviderManifest.cs
- SizeAnimationClockResource.cs
- XmlWrappingReader.cs
- DesignerAutoFormatStyle.cs
- TextFormatterHost.cs
- ToolCreatedEventArgs.cs
- MaterialGroup.cs
- AdapterDictionary.cs
- DynamicDataResources.Designer.cs
- IfAction.cs
- SetterBaseCollection.cs
- VariableBinder.cs
- EdmError.cs
- TablePattern.cs
- Internal.cs
- TimeoutValidationAttribute.cs
- ViewGenerator.cs
- KnownColorTable.cs
- WebPartAddingEventArgs.cs
- SafeViewOfFileHandle.cs
- CfgArc.cs
- AffineTransform3D.cs
- NativeMethods.cs
- CapabilitiesPattern.cs
- GetPageNumberCompletedEventArgs.cs
- WCFBuildProvider.cs
- UICuesEvent.cs
- TextRangeSerialization.cs
- ZipIOLocalFileDataDescriptor.cs
- TypeBuilderInstantiation.cs
- BlobPersonalizationState.cs
- COM2FontConverter.cs
- StartUpEventArgs.cs
- DataContract.cs
- Misc.cs
- TypeToken.cs
- SqlDeflator.cs
- OutputCacheProfileCollection.cs