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
- DtrList.cs
- PageOutputQuality.cs
- ContractMapping.cs
- XPathBuilder.cs
- WorkflowDesignerMessageFilter.cs
- OperationParameterInfo.cs
- WorkflowInstanceExtensionCollection.cs
- SamlAudienceRestrictionCondition.cs
- TextTabProperties.cs
- ExpressionPrefixAttribute.cs
- AutomationElementCollection.cs
- Application.cs
- EntityContainerEntitySet.cs
- OracleDataAdapter.cs
- Style.cs
- ISAPIApplicationHost.cs
- PngBitmapEncoder.cs
- EditingScope.cs
- ControlPager.cs
- ListContractAdapter.cs
- WebPartManagerInternals.cs
- RefType.cs
- OdbcTransaction.cs
- HopperCache.cs
- RegionData.cs
- EqualityComparer.cs
- LinkTarget.cs
- PictureBox.cs
- Color.cs
- StandardBindingCollectionElement.cs
- DashStyle.cs
- FixedPosition.cs
- XmlCharType.cs
- WeakHashtable.cs
- baseaxisquery.cs
- TypeSystem.cs
- StringSource.cs
- XmlSchemaImporter.cs
- URLIdentityPermission.cs
- nulltextnavigator.cs
- HtmlSelect.cs
- ParamArrayAttribute.cs
- RecognitionResult.cs
- MarkupCompilePass1.cs
- TemplateXamlTreeBuilder.cs
- Size3D.cs
- SqlWebEventProvider.cs
- XamlBrushSerializer.cs
- WindowsFormsSynchronizationContext.cs
- Animatable.cs
- HttpRuntime.cs
- ColorBuilder.cs
- RawUIStateInputReport.cs
- TextServicesCompartmentContext.cs
- InternalResources.cs
- SessionStateModule.cs
- DesignerActionItem.cs
- TraceLog.cs
- LoggedException.cs
- InvokeCompletedEventArgs.cs
- ProjectionPathBuilder.cs
- AdapterSwitches.cs
- ErrorFormatter.cs
- RestHandlerFactory.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- UIEndRequest.cs
- TrackingServices.cs
- HttpListener.cs
- BuilderPropertyEntry.cs
- ProcessModelInfo.cs
- SelectorItemAutomationPeer.cs
- Duration.cs
- CollectionType.cs
- HostingPreferredMapPath.cs
- CqlIdentifiers.cs
- dsa.cs
- ZoneButton.cs
- Guid.cs
- GatewayIPAddressInformationCollection.cs
- AutomationPropertyInfo.cs
- PropertyEmitter.cs
- SelectorAutomationPeer.cs
- ClickablePoint.cs
- GridView.cs
- SiteMapNodeItem.cs
- MessageSmuggler.cs
- OleDbErrorCollection.cs
- MergablePropertyAttribute.cs
- DataListItemEventArgs.cs
- QuaternionRotation3D.cs
- StylusPointPropertyUnit.cs
- VirtualPathUtility.cs
- EntityWithChangeTrackerStrategy.cs
- XmlILConstructAnalyzer.cs
- CryptoStream.cs
- XmlByteStreamWriter.cs
- ParentQuery.cs
- HttpListener.cs
- SystemColors.cs
- PopupRootAutomationPeer.cs