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
- SolidBrush.cs
- TemplateModeChangedEventArgs.cs
- CustomValidator.cs
- Vars.cs
- Container.cs
- BaseCodePageEncoding.cs
- EventRecord.cs
- LiteralTextParser.cs
- PropertyMapper.cs
- ZeroOpNode.cs
- CodeAssignStatement.cs
- Pen.cs
- RotateTransform3D.cs
- GridProviderWrapper.cs
- DataGridViewCell.cs
- FrameworkTemplate.cs
- TransformerConfigurationWizardBase.cs
- SetStoryboardSpeedRatio.cs
- _CommandStream.cs
- ColumnReorderedEventArgs.cs
- ByeOperationCD1AsyncResult.cs
- ISessionStateStore.cs
- RandomNumberGenerator.cs
- ResXDataNode.cs
- Debug.cs
- SafeLibraryHandle.cs
- ProfileEventArgs.cs
- CollectionBuilder.cs
- SignatureDescription.cs
- ExtensionWindowHeader.cs
- MetadataItem.cs
- ChtmlFormAdapter.cs
- DataGridViewCellCancelEventArgs.cs
- TimelineCollection.cs
- MasterPageCodeDomTreeGenerator.cs
- TextSyndicationContentKindHelper.cs
- Compiler.cs
- CollectionEditVerbManager.cs
- DataError.cs
- ToolStripManager.cs
- GenericsInstances.cs
- _LazyAsyncResult.cs
- contentDescriptor.cs
- DeviceSpecific.cs
- Logging.cs
- StickyNoteAnnotations.cs
- codemethodreferenceexpression.cs
- DataSetUtil.cs
- BamlLocalizationDictionary.cs
- Transactions.cs
- InterleavedZipPartStream.cs
- SecurityTokenRequirement.cs
- ObjectConverter.cs
- AsymmetricSignatureDeformatter.cs
- TimeSpanConverter.cs
- _TLSstream.cs
- CompatibleComparer.cs
- CustomValidator.cs
- BaseWebProxyFinder.cs
- XsdDateTime.cs
- DetailsViewModeEventArgs.cs
- DefaultProxySection.cs
- IncrementalHitTester.cs
- JapaneseCalendar.cs
- ListBindingHelper.cs
- CustomWebEventKey.cs
- ValidationPropertyAttribute.cs
- RoamingStoreFile.cs
- DataServiceRequestException.cs
- AccessibleObject.cs
- DCSafeHandle.cs
- WindowsAuthenticationEventArgs.cs
- ObjectViewEntityCollectionData.cs
- RolePrincipal.cs
- entityreference_tresulttype.cs
- ImageFormatConverter.cs
- hebrewshape.cs
- HttpChannelBindingToken.cs
- TraceData.cs
- SecondaryViewProvider.cs
- FilteredDataSetHelper.cs
- XmlSerializerNamespaces.cs
- ListControlConvertEventArgs.cs
- BamlTreeMap.cs
- UnmanagedMemoryStream.cs
- DivideByZeroException.cs
- BaseDataListDesigner.cs
- FixedSOMFixedBlock.cs
- FormatVersion.cs
- OciLobLocator.cs
- ImageAttributes.cs
- CharConverter.cs
- SplitterCancelEvent.cs
- SQLMoneyStorage.cs
- DbProviderFactories.cs
- SqlUtil.cs
- SettingsBase.cs
- DataGridViewCellValueEventArgs.cs
- ImmComposition.cs
- EdmSchemaAttribute.cs