Code:
/ FX-1434 / FX-1434 / 1.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
- RSAOAEPKeyExchangeDeformatter.cs
- PropertyIDSet.cs
- PersonalizationStateInfoCollection.cs
- invalidudtexception.cs
- FixedTextView.cs
- FigureParaClient.cs
- TreePrinter.cs
- CommonObjectSecurity.cs
- ProbeMatchesMessageCD1.cs
- filewebrequest.cs
- RtType.cs
- WebPartDescriptionCollection.cs
- DependentList.cs
- PieceDirectory.cs
- TwoPhaseCommit.cs
- ValidationPropertyAttribute.cs
- XmlWellformedWriter.cs
- _Win32.cs
- SamlConditions.cs
- SettingsSection.cs
- SqlNodeTypeOperators.cs
- DataControlImageButton.cs
- LinqDataSourceUpdateEventArgs.cs
- SourceItem.cs
- remotingproxy.cs
- DataComponentNameHandler.cs
- MsmqTransportSecurityElement.cs
- ZipIOCentralDirectoryBlock.cs
- ParallelLoopState.cs
- ParserExtension.cs
- CodeDOMProvider.cs
- SymLanguageType.cs
- IdentityHolder.cs
- LabelAutomationPeer.cs
- InputEventArgs.cs
- SecurityCriticalDataForSet.cs
- BamlLocalizationDictionary.cs
- XmlDeclaration.cs
- WCFModelStrings.Designer.cs
- LocatorGroup.cs
- XPathNode.cs
- nulltextcontainer.cs
- XmlTextEncoder.cs
- ImageBrush.cs
- JpegBitmapEncoder.cs
- MailMessageEventArgs.cs
- AssertFilter.cs
- SqlDataSourceCommandEventArgs.cs
- _AcceptOverlappedAsyncResult.cs
- TypeSystem.cs
- CodeTypeParameter.cs
- DbReferenceCollection.cs
- NoResizeSelectionBorderGlyph.cs
- DataSetMappper.cs
- SqlStream.cs
- XmlCountingReader.cs
- ChannelDispatcherBase.cs
- ToolStripRenderer.cs
- PeerResolverElement.cs
- XmlQueryType.cs
- InkSerializer.cs
- CacheMemory.cs
- mactripleDES.cs
- NumberFormatter.cs
- WebControlAdapter.cs
- ConditionalAttribute.cs
- PassportAuthenticationModule.cs
- CommandBindingCollection.cs
- PersistenceTypeAttribute.cs
- MILUtilities.cs
- RectangleGeometry.cs
- Pair.cs
- DataTableMapping.cs
- TextStore.cs
- StatusBarAutomationPeer.cs
- BaseCodePageEncoding.cs
- PropertyMetadata.cs
- MaterialGroup.cs
- COM2Properties.cs
- TiffBitmapDecoder.cs
- DecimalAnimationBase.cs
- xmlsaver.cs
- ReachSerializationUtils.cs
- XmlQueryRuntime.cs
- SetterBaseCollection.cs
- ParagraphVisual.cs
- DataGridViewCellStyle.cs
- ShaderEffect.cs
- UniqueConstraint.cs
- SimpleWebHandlerParser.cs
- OuterGlowBitmapEffect.cs
- MemberDescriptor.cs
- SystemIPInterfaceStatistics.cs
- VoiceObjectToken.cs
- Polyline.cs
- FormView.cs
- COM2Properties.cs
- DetailsViewInsertedEventArgs.cs
- HwndSourceParameters.cs
- KeyedHashAlgorithm.cs