Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Exception.cs
- StylusPointDescription.cs
- LogEntryDeserializer.cs
- TimeEnumHelper.cs
- SSmlParser.cs
- LockCookie.cs
- ButtonBaseAdapter.cs
- CustomErrorsSection.cs
- DataGridDetailsPresenterAutomationPeer.cs
- DefaultTypeArgumentAttribute.cs
- TextFormatterImp.cs
- WrappedOptions.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- DataColumnSelectionConverter.cs
- PeerInvitationResponse.cs
- Triplet.cs
- CompositeControl.cs
- FamilyTypefaceCollection.cs
- BaseTreeIterator.cs
- XmlSerializerVersionAttribute.cs
- HMAC.cs
- ItemsChangedEventArgs.cs
- Signature.cs
- SerialPort.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- UIElementIsland.cs
- parserscommon.cs
- HebrewCalendar.cs
- HtmlControl.cs
- HideDisabledControlAdapter.cs
- ImmComposition.cs
- XmlNamespaceManager.cs
- ProxyWebPart.cs
- ForceCopyBuildProvider.cs
- SqlProfileProvider.cs
- HashSetDebugView.cs
- ClientSideQueueItem.cs
- FileClassifier.cs
- OverrideMode.cs
- BindingExpression.cs
- PointCollection.cs
- Button.cs
- Select.cs
- MemberAccessException.cs
- Activity.cs
- CqlWriter.cs
- CodeAttachEventStatement.cs
- BuildProvidersCompiler.cs
- EdmMember.cs
- SQLConvert.cs
- CatalogPart.cs
- StructuralCache.cs
- EndpointDesigner.cs
- NominalTypeEliminator.cs
- WinEventTracker.cs
- Image.cs
- Timeline.cs
- DescendantOverDescendantQuery.cs
- PenContexts.cs
- XmlILConstructAnalyzer.cs
- InheritanceAttribute.cs
- StringHelper.cs
- IPEndPoint.cs
- Parser.cs
- ScaleTransform.cs
- RestClientProxyHandler.cs
- OutputCache.cs
- Rectangle.cs
- SmiRequestExecutor.cs
- CardSpaceSelector.cs
- SnapLine.cs
- WorkflowItemPresenter.cs
- StylusTip.cs
- SqlGatherProducedAliases.cs
- RectAnimationBase.cs
- ProfileEventArgs.cs
- ExpressionBinding.cs
- EncoderBestFitFallback.cs
- Executor.cs
- UniformGrid.cs
- WizardPanel.cs
- StatusBarPanelClickEvent.cs
- ScrollViewer.cs
- ServiceOperationParameter.cs
- ObjectDataSource.cs
- FlowDocument.cs
- BooleanToVisibilityConverter.cs
- TimersDescriptionAttribute.cs
- RegistrationServices.cs
- CommonGetThemePartSize.cs
- DateTimePickerDesigner.cs
- NumberSubstitution.cs
- MailMessageEventArgs.cs
- GlobalizationAssembly.cs
- recordstatefactory.cs
- InheritedPropertyDescriptor.cs
- AssociatedControlConverter.cs
- Comparer.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- TdsParserHelperClasses.cs