Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1305376 / ClientSponsor.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //+---------------------------------------------------------------------------- // // File: ClientSponsor.cs // // Contents: Agent for keeping Server Object's lifetime in [....] with a client's lifetime // // History: 8/9/00[....] Created // //+--------------------------------------------------------------------------- namespace System.Runtime.Remoting.Lifetime { using System; using System.Collections; using System.Security.Permissions; [System.Security.SecurityCritical] // auto-generated_required [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)] [System.Runtime.InteropServices.ComVisible(true)] public class ClientSponsor : MarshalByRefObject, ISponsor { private Hashtable sponsorTable = new Hashtable(10); private TimeSpan m_renewalTime = TimeSpan.FromMinutes(2); public ClientSponsor() { } public ClientSponsor(TimeSpan renewalTime) { this.m_renewalTime = renewalTime; } public TimeSpan RenewalTime { get{ return m_renewalTime;} set{ m_renewalTime = value;} } [System.Security.SecurityCritical] // auto-generated public bool Register(MarshalByRefObject obj) { BCLDebug.Trace("REMOTE", "ClientSponsor Register "+obj); ILease lease = (ILease)obj.GetLifetimeService(); if (lease == null) return false; lease.Register(this); lock(sponsorTable) { sponsorTable[obj] = lease; } return true; } [System.Security.SecurityCritical] // auto-generated public void Unregister(MarshalByRefObject obj) { BCLDebug.Trace("REMOTE", "ClientSponsor Unregister "+obj); ILease lease = null; lock(sponsorTable) { lease = (ILease)sponsorTable[obj]; } if (lease != null) lease.Unregister(this); } // ISponsor method [System.Security.SecurityCritical] public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } [System.Security.SecurityCritical] // auto-generated public void Close() { BCLDebug.Trace("REMOTE","ClientSponsor Close"); lock(sponsorTable) { IDictionaryEnumerator e = sponsorTable.GetEnumerator(); while(e.MoveNext()) ((ILease)e.Value).Unregister(this); sponsorTable.Clear(); } } // Don't create a lease on the sponsor [System.Security.SecurityCritical] public override Object InitializeLifetimeService() { return null; } [System.Security.SecuritySafeCritical] // finalizers should be treated as safe ~ClientSponsor() { BCLDebug.Trace("REMOTE","ClientSponsor Finalize"); } } } // 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
- PagerSettings.cs
- sqlmetadatafactory.cs
- InsufficientMemoryException.cs
- FileDialogCustomPlacesCollection.cs
- BitmapMetadata.cs
- DataGridViewRowPostPaintEventArgs.cs
- LinqDataSourceValidationException.cs
- TimeSpan.cs
- _Rfc2616CacheValidators.cs
- ISAPIRuntime.cs
- Int32CAMarshaler.cs
- EventItfInfo.cs
- DocumentViewerBaseAutomationPeer.cs
- GeneralTransform3D.cs
- DispatcherFrame.cs
- MinimizableAttributeTypeConverter.cs
- SystemColors.cs
- GeneralTransform2DTo3D.cs
- GridViewSelectEventArgs.cs
- WebBrowserHelper.cs
- UdpMessageProperty.cs
- PermissionRequestEvidence.cs
- DeferredElementTreeState.cs
- WmlCalendarAdapter.cs
- RIPEMD160.cs
- BindableTemplateBuilder.cs
- ObjectPersistData.cs
- IdentitySection.cs
- CurrentChangingEventArgs.cs
- Screen.cs
- DbDataReader.cs
- TextLine.cs
- RuntimeArgumentHandle.cs
- GeometryCombineModeValidation.cs
- FormatStringEditor.cs
- NativeMethodsOther.cs
- MobileTemplatedControlDesigner.cs
- WebHttpSecurity.cs
- BaseAsyncResult.cs
- SeekableReadStream.cs
- Triangle.cs
- FileIOPermission.cs
- AnimatedTypeHelpers.cs
- MemberJoinTreeNode.cs
- StateChangeEvent.cs
- Panel.cs
- CaseInsensitiveComparer.cs
- SpellerStatusTable.cs
- MeshGeometry3D.cs
- WindowsRichEditRange.cs
- EntityTypeEmitter.cs
- KerberosReceiverSecurityToken.cs
- RijndaelManagedTransform.cs
- ExpressionEvaluator.cs
- RankException.cs
- FileDialogCustomPlacesCollection.cs
- DockPanel.cs
- GuidTagList.cs
- StateBag.cs
- PagesSection.cs
- HttpCachePolicyElement.cs
- TypeBuilderInstantiation.cs
- AuthenticationManager.cs
- JoinSymbol.cs
- ProtocolInformationWriter.cs
- RoleGroupCollectionEditor.cs
- HandleCollector.cs
- RoutedEventArgs.cs
- SHA1.cs
- IndexedString.cs
- LicenseContext.cs
- DetailsViewDeleteEventArgs.cs
- ImageCodecInfoPrivate.cs
- DetailsViewUpdateEventArgs.cs
- cookiecollection.cs
- UrlRoutingHandler.cs
- DbConnectionStringCommon.cs
- DrawingVisual.cs
- FormViewInsertEventArgs.cs
- CompoundFileReference.cs
- SectionUpdates.cs
- SingleAnimationBase.cs
- PerformanceCounterPermission.cs
- SortAction.cs
- FixedSOMContainer.cs
- DocumentGridContextMenu.cs
- BinaryWriter.cs
- DataGridViewButtonCell.cs
- ButtonField.cs
- DataBinder.cs
- FontStretch.cs
- QueryResponse.cs
- ContainerTracking.cs
- AutomationIdentifier.cs
- HeaderCollection.cs
- RowToParametersTransformer.cs
- DataShape.cs
- DataSourceControlBuilder.cs
- Subtree.cs
- UnhandledExceptionEventArgs.cs