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
- HighContrastHelper.cs
- CodePropertyReferenceExpression.cs
- PathFigureCollection.cs
- Pen.cs
- DesignTimeVisibleAttribute.cs
- NativeMethodsCLR.cs
- TypeSystem.cs
- TreeNodeCollectionEditor.cs
- shaperfactoryquerycacheentry.cs
- PointLightBase.cs
- keycontainerpermission.cs
- ComPlusThreadInitializer.cs
- MethodBuilder.cs
- _RequestCacheProtocol.cs
- DataTemplate.cs
- BorderSidesEditor.cs
- DefaultAsyncDataDispatcher.cs
- RemoteCryptoSignHashRequest.cs
- JsonStringDataContract.cs
- VerificationAttribute.cs
- SupportingTokenDuplexChannel.cs
- FontFamilyIdentifier.cs
- PersonalizablePropertyEntry.cs
- WsdlBuildProvider.cs
- BinaryFormatterWriter.cs
- SqlXml.cs
- EntityCollection.cs
- WebConfigurationManager.cs
- MenuItemStyle.cs
- DataGridViewCheckBoxColumn.cs
- XPathNodeList.cs
- DBBindings.cs
- PolyBezierSegment.cs
- Control.cs
- DataReceivedEventArgs.cs
- CrossSiteScriptingValidation.cs
- ResXResourceSet.cs
- DelayedRegex.cs
- TextEditorDragDrop.cs
- WebEncodingValidatorAttribute.cs
- SchemaMerger.cs
- ResourceExpressionEditor.cs
- BrowsableAttribute.cs
- WorkflowPrinting.cs
- ProtocolProfile.cs
- ColorBlend.cs
- XsdValidatingReader.cs
- TextStore.cs
- safesecurityhelperavalon.cs
- ReflectionUtil.cs
- EntryWrittenEventArgs.cs
- FixedTextBuilder.cs
- RectangleGeometry.cs
- documentsequencetextview.cs
- ExceptionUtil.cs
- NotifyParentPropertyAttribute.cs
- EventDescriptorCollection.cs
- ManagedFilter.cs
- MetadataCache.cs
- StateRuntime.cs
- XmlDataSource.cs
- OperationDescription.cs
- DataFormats.cs
- XamlTypeMapper.cs
- MembershipValidatePasswordEventArgs.cs
- ChtmlCalendarAdapter.cs
- DrawingGroup.cs
- DbConvert.cs
- PassportIdentity.cs
- ColumnMapVisitor.cs
- SiteMap.cs
- DebugHandleTracker.cs
- TransformerTypeCollection.cs
- DeclaredTypeValidatorAttribute.cs
- TextTrailingWordEllipsis.cs
- AssociatedControlConverter.cs
- Shape.cs
- CodeMemberEvent.cs
- WebBrowserUriTypeConverter.cs
- DeploymentExceptionMapper.cs
- TypeRestriction.cs
- CommunicationObjectFaultedException.cs
- Convert.cs
- MethodImplAttribute.cs
- WebReferenceCollection.cs
- EncodingInfo.cs
- Point4DConverter.cs
- ChtmlFormAdapter.cs
- DebugView.cs
- LocalizabilityAttribute.cs
- DoubleLinkList.cs
- StructuralObject.cs
- EncoderExceptionFallback.cs
- List.cs
- TreeNodeMouseHoverEvent.cs
- ConfigXmlDocument.cs
- ValidatorCollection.cs
- GlyphsSerializer.cs
- PrintDialog.cs
- HandlerBase.cs