Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / ProxyAttribute.cs / 1305376 / ProxyAttribute.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: ProxyAttribute.cs ** ** ** Purpose: Defines the attribute that is used on types which ** need custom proxies. ** ** ===========================================================*/ namespace System.Runtime.Remoting.Proxies { using System.Reflection; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Contexts; using System.Security.Permissions; // Attribute for types that need custom proxies [System.Security.SecurityCritical] // auto-generated_required [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)] [System.Runtime.InteropServices.ComVisible(true)] public class ProxyAttribute : Attribute , IContextAttribute { public ProxyAttribute() { // Default constructor } // Default implementation of CreateInstance uses our activation services to create an instance // of the transparent proxy or an uninitialized marshalbyrefobject and returns it. [System.Security.SecurityCritical] // auto-generated public virtual MarshalByRefObject CreateInstance(Type serverType) { if (serverType == null) throw new ArgumentNullException("serverType"); RuntimeType rt = serverType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); if (!serverType.IsContextful) { throw new RemotingException( Environment.GetResourceString( "Remoting_Activation_MBR_ProxyAttribute")); } if (serverType.IsAbstract) { throw new RemotingException( Environment.GetResourceString( "Acc_CreateAbst")); } return CreateInstanceInternal(rt); } internal MarshalByRefObject CreateInstanceInternal(RuntimeType serverType) { return ActivationServices.CreateInstance(serverType); } // Default implementation of CreateProxy creates an instance of our // remoting proxy [System.Security.SecurityCritical] // auto-generated public virtual RealProxy CreateProxy(ObjRef objRef, Type serverType, Object serverObject, Context serverContext) { RemotingProxy rp = new RemotingProxy(serverType); // If this is a serverID, set the native context field in the TP if (null != serverContext) { RealProxy.SetStubData(rp, serverContext.InternalContextID); } if (objRef != null && objRef.GetServerIdentity().IsAllocated) { rp.SetSrvInfo(objRef.GetServerIdentity(), objRef.GetDomainID()); } // Set the flag indicating that the fields of the proxy // have been initialized rp.Initialized = true; // Sanity check Type t = serverType; if (!t.IsContextful && !t.IsMarshalByRef && (null != serverContext)) { throw new RemotingException( Environment.GetResourceString( "Remoting_Activation_MBR_ProxyAttribute")); } return rp; } // implementation of interface IContextAttribute [System.Security.SecurityCritical] [System.Runtime.InteropServices.ComVisible(true)] public bool IsContextOK(Context ctx, IConstructionCallMessage msg) { // always happy... return true; } [System.Security.SecurityCritical] [System.Runtime.InteropServices.ComVisible(true)] public void GetPropertiesForNewContext(IConstructionCallMessage msg) { // chill.. do nothing. return; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: ProxyAttribute.cs ** ** ** Purpose: Defines the attribute that is used on types which ** need custom proxies. ** ** ===========================================================*/ namespace System.Runtime.Remoting.Proxies { using System.Reflection; using System.Runtime.Remoting.Activation; using System.Runtime.Remoting.Contexts; using System.Security.Permissions; // Attribute for types that need custom proxies [System.Security.SecurityCritical] // auto-generated_required [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)] [System.Runtime.InteropServices.ComVisible(true)] public class ProxyAttribute : Attribute , IContextAttribute { public ProxyAttribute() { // Default constructor } // Default implementation of CreateInstance uses our activation services to create an instance // of the transparent proxy or an uninitialized marshalbyrefobject and returns it. [System.Security.SecurityCritical] // auto-generated public virtual MarshalByRefObject CreateInstance(Type serverType) { if (serverType == null) throw new ArgumentNullException("serverType"); RuntimeType rt = serverType as RuntimeType; if (rt == null) throw new ArgumentException(Environment.GetResourceString("Argument_MustBeRuntimeType")); if (!serverType.IsContextful) { throw new RemotingException( Environment.GetResourceString( "Remoting_Activation_MBR_ProxyAttribute")); } if (serverType.IsAbstract) { throw new RemotingException( Environment.GetResourceString( "Acc_CreateAbst")); } return CreateInstanceInternal(rt); } internal MarshalByRefObject CreateInstanceInternal(RuntimeType serverType) { return ActivationServices.CreateInstance(serverType); } // Default implementation of CreateProxy creates an instance of our // remoting proxy [System.Security.SecurityCritical] // auto-generated public virtual RealProxy CreateProxy(ObjRef objRef, Type serverType, Object serverObject, Context serverContext) { RemotingProxy rp = new RemotingProxy(serverType); // If this is a serverID, set the native context field in the TP if (null != serverContext) { RealProxy.SetStubData(rp, serverContext.InternalContextID); } if (objRef != null && objRef.GetServerIdentity().IsAllocated) { rp.SetSrvInfo(objRef.GetServerIdentity(), objRef.GetDomainID()); } // Set the flag indicating that the fields of the proxy // have been initialized rp.Initialized = true; // Sanity check Type t = serverType; if (!t.IsContextful && !t.IsMarshalByRef && (null != serverContext)) { throw new RemotingException( Environment.GetResourceString( "Remoting_Activation_MBR_ProxyAttribute")); } return rp; } // implementation of interface IContextAttribute [System.Security.SecurityCritical] [System.Runtime.InteropServices.ComVisible(true)] public bool IsContextOK(Context ctx, IConstructionCallMessage msg) { // always happy... return true; } [System.Security.SecurityCritical] [System.Runtime.InteropServices.ComVisible(true)] public void GetPropertiesForNewContext(IConstructionCallMessage msg) { // chill.. do nothing. return; } } } // 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
- SvcMapFileLoader.cs
- PropertyItem.cs
- _StreamFramer.cs
- StorageScalarPropertyMapping.cs
- XNodeValidator.cs
- PrimitiveSchema.cs
- PlanCompilerUtil.cs
- VisualBasicReference.cs
- Events.cs
- CompilationUtil.cs
- DataException.cs
- DataTemplateKey.cs
- PolyBezierSegmentFigureLogic.cs
- xmlglyphRunInfo.cs
- RewritingProcessor.cs
- BufferedStream.cs
- AuthenticationException.cs
- CreateUserWizard.cs
- WebServiceParameterData.cs
- FixedStringLookup.cs
- Completion.cs
- PropertyChangedEventArgs.cs
- FormsAuthenticationConfiguration.cs
- ObfuscationAttribute.cs
- LookupNode.cs
- OleDbConnection.cs
- StoragePropertyMapping.cs
- DashStyle.cs
- IncrementalReadDecoders.cs
- UserControl.cs
- DrawingVisualDrawingContext.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- BindingListCollectionView.cs
- Aggregates.cs
- ScriptManager.cs
- Literal.cs
- TableRow.cs
- DefaultAssemblyResolver.cs
- ConnectionManagementElementCollection.cs
- StringAnimationUsingKeyFrames.cs
- ProxyFragment.cs
- BehaviorEditorPart.cs
- Range.cs
- NameValuePermission.cs
- Int64AnimationBase.cs
- CommandField.cs
- SQLUtility.cs
- SoapElementAttribute.cs
- SR.cs
- EventDescriptor.cs
- ResourceContainer.cs
- XmlILOptimizerVisitor.cs
- BitmapEffectvisualstate.cs
- GridView.cs
- SqlXml.cs
- XmlRawWriter.cs
- HTTPNotFoundHandler.cs
- SecurityListenerSettingsLifetimeManager.cs
- Regex.cs
- ErrorFormatter.cs
- BatchWriter.cs
- TextServicesPropertyRanges.cs
- CompoundFileIOPermission.cs
- DataServiceQueryContinuation.cs
- MenuItemStyleCollection.cs
- ToolTipService.cs
- WebDescriptionAttribute.cs
- SmiXetterAccessMap.cs
- Positioning.cs
- LogLogRecordEnumerator.cs
- SqlDataRecord.cs
- CheckBoxAutomationPeer.cs
- FixUpCollection.cs
- cookie.cs
- SuppressMessageAttribute.cs
- FilterElement.cs
- ToolBar.cs
- ColorContextHelper.cs
- SEHException.cs
- PropertyChange.cs
- CellIdBoolean.cs
- XmlRawWriterWrapper.cs
- DataGridViewRowPrePaintEventArgs.cs
- OverflowException.cs
- AuthenticationService.cs
- RepeaterCommandEventArgs.cs
- IERequestCache.cs
- KeyToListMap.cs
- SourceFileBuildProvider.cs
- PanelStyle.cs
- ReadOnlyPropertyMetadata.cs
- VScrollBar.cs
- OdbcCommand.cs
- DataGridRow.cs
- HeaderUtility.cs
- util.cs
- JapaneseCalendar.cs
- HttpConfigurationContext.cs
- ColorInterpolationModeValidation.cs
- DrawToolTipEventArgs.cs