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
- ErrorFormatterPage.cs
- Hyperlink.cs
- UriExt.cs
- RequiredAttributeAttribute.cs
- MobileControlDesigner.cs
- ForEachAction.cs
- StateManagedCollection.cs
- HtmlInputPassword.cs
- CompleteWizardStep.cs
- dtdvalidator.cs
- ComponentSerializationService.cs
- ValuePattern.cs
- JoinGraph.cs
- RenderDataDrawingContext.cs
- ErrorProvider.cs
- ListBindingHelper.cs
- EnumerableCollectionView.cs
- InputScopeNameConverter.cs
- CommandCollectionEditor.cs
- UIElementHelper.cs
- AuthenticationService.cs
- HwndSource.cs
- HuffmanTree.cs
- XmlSerializerFactory.cs
- OleDbCommandBuilder.cs
- SectionInput.cs
- Operators.cs
- Single.cs
- ProtocolInformationReader.cs
- DataException.cs
- DataServiceHostFactory.cs
- EDesignUtil.cs
- _ConnectOverlappedAsyncResult.cs
- ArithmeticException.cs
- MeshGeometry3D.cs
- RecommendedAsConfigurableAttribute.cs
- ExplicitDiscriminatorMap.cs
- ColorTranslator.cs
- EntityChangedParams.cs
- ListViewHitTestInfo.cs
- _OverlappedAsyncResult.cs
- WebHttpEndpoint.cs
- WpfKnownTypeInvoker.cs
- TextTreeRootTextBlock.cs
- MimeFormReflector.cs
- WebPartEditVerb.cs
- XmlUtf8RawTextWriter.cs
- COAUTHINFO.cs
- CmsInterop.cs
- DataServiceProcessingPipelineEventArgs.cs
- URLAttribute.cs
- OperationResponse.cs
- AmbientValueAttribute.cs
- XmlArrayItemAttributes.cs
- HostedImpersonationContext.cs
- AssociatedControlConverter.cs
- AllMembershipCondition.cs
- ObjectSet.cs
- CodeMemberMethod.cs
- ListenerAdapter.cs
- PresentationAppDomainManager.cs
- Splitter.cs
- SessionStateContainer.cs
- DesignerActionList.cs
- recordstate.cs
- MembershipUser.cs
- TextDecoration.cs
- ColorBlend.cs
- DataGridViewBindingCompleteEventArgs.cs
- Config.cs
- NamespaceDecl.cs
- EventLogPermissionEntryCollection.cs
- UITypeEditor.cs
- WindowsFormsHelpers.cs
- IEnumerable.cs
- Hashtable.cs
- StorageFunctionMapping.cs
- ToolStripCollectionEditor.cs
- BasicHttpBindingElement.cs
- ToolStripStatusLabel.cs
- SerializableAttribute.cs
- BuildManagerHost.cs
- Point3DAnimationUsingKeyFrames.cs
- ApplicationInterop.cs
- ComPlusServiceHost.cs
- WebEncodingValidator.cs
- DateTimeFormatInfo.cs
- ExpressionBuilderContext.cs
- Baml2006KnownTypes.cs
- GuidelineSet.cs
- OdbcParameter.cs
- Label.cs
- ExpressionBuilderCollection.cs
- Graphics.cs
- PerspectiveCamera.cs
- SpellerHighlightLayer.cs
- Menu.cs
- x509store.cs
- MappingSource.cs
- SrgsGrammarCompiler.cs