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
- WinInet.cs
- ClientFormsAuthenticationCredentials.cs
- CookieHandler.cs
- SiteMembershipCondition.cs
- ScrollEventArgs.cs
- SessionEndingEventArgs.cs
- DirectoryObjectSecurity.cs
- RPIdentityRequirement.cs
- DefaultConfirmation.cs
- InheritanceContextHelper.cs
- EditorPartCollection.cs
- ProcessHostFactoryHelper.cs
- NullableLongAverageAggregationOperator.cs
- SynchronousSendBindingElement.cs
- CellParagraph.cs
- ECDiffieHellmanPublicKey.cs
- DATA_BLOB.cs
- TargetConverter.cs
- HttpContext.cs
- SafeRightsManagementPubHandle.cs
- ConnectionStringSettingsCollection.cs
- PropertyMappingExceptionEventArgs.cs
- XmlDataSourceNodeDescriptor.cs
- IDictionary.cs
- FunctionImportMapping.cs
- TextTreeTextBlock.cs
- NavigationWindow.cs
- DelimitedListTraceListener.cs
- precedingquery.cs
- IssuedTokensHeader.cs
- FunctionImportMapping.cs
- SchemaComplexType.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- MetadataArtifactLoaderResource.cs
- TypeUtil.cs
- ZipIOExtraField.cs
- Compiler.cs
- TemplateBindingExtensionConverter.cs
- ImmComposition.cs
- validationstate.cs
- FSWPathEditor.cs
- BackgroundFormatInfo.cs
- DoubleLinkList.cs
- PerformanceCounterPermissionEntry.cs
- MimeTypeAttribute.cs
- CapabilitiesAssignment.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- Stroke.cs
- RequestCachePolicyConverter.cs
- XmlElement.cs
- TypeUtils.cs
- CharConverter.cs
- Boolean.cs
- MonikerProxyAttribute.cs
- Substitution.cs
- ValidationSummary.cs
- EqualityComparer.cs
- TreeIterator.cs
- FileFormatException.cs
- CircleHotSpot.cs
- WebPartHelpVerb.cs
- IisTraceWebEventProvider.cs
- CodeConstructor.cs
- XmlElementCollection.cs
- Reference.cs
- NaturalLanguageHyphenator.cs
- IntranetCredentialPolicy.cs
- SystemColorTracker.cs
- SocketStream.cs
- SrgsSubset.cs
- ToolboxBitmapAttribute.cs
- ObjectComplexPropertyMapping.cs
- Unit.cs
- DebugView.cs
- EventManager.cs
- PersonalizationStateInfoCollection.cs
- XmlIlVisitor.cs
- WindowsPrincipal.cs
- MediaCommands.cs
- Transform3DGroup.cs
- RewritingSimplifier.cs
- ListView.cs
- SmiConnection.cs
- InputDevice.cs
- SecurityCriticalDataForSet.cs
- EntityProviderFactory.cs
- shaperfactory.cs
- XmlObjectSerializerReadContextComplex.cs
- OrderByQueryOptionExpression.cs
- DataGridViewIntLinkedList.cs
- TreeNodeCollection.cs
- SingleAnimation.cs
- XsdCachingReader.cs
- StreamResourceInfo.cs
- XmlSchemaInclude.cs
- GridViewItemAutomationPeer.cs
- RegexMatchCollection.cs
- AssemblyCache.cs
- Point3DCollectionValueSerializer.cs
- CodeAccessSecurityEngine.cs