ProxyAttribute クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(True)> _ <AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple:=False, Inherited:=True)> _ Public Class ProxyAttribute Inherits Attribute Implements IContextAttribute
[ComVisibleAttribute(true)] [AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=false, Inherited=true)] public class ProxyAttribute : Attribute, IContextAttribute
[ComVisibleAttribute(true)] [AttributeUsageAttribute(AttributeTargets::Class, AllowMultiple=false, Inherited=true)] public ref class ProxyAttribute : public Attribute, IContextAttribute

現在の属性をカスタム プロキシを必要とする型に適用します。ProxyAttribute クラスを使用すると、ProxyAttribute から派生し、ContextBoundObject の子に属性を適用することによって、new (Visual Basic では New) ステートメントを受け取ることができます。MarshalByRefObject の子にプロキシ属性を適用することはできません。
![]() |
---|
このクラスは、リンク確認要求と継承確認要求をクラス レベルで行います。直前の呼び出し元または派生クラスにインフラストラクチャ アクセス許可がない場合、SecurityException がスローされます。セキュリティ要求の詳細については、「リンク確認要求」および「継承確認要求」を参照してください。 |

<SecurityPermissionAttribute(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure), _ AttributeUsage(AttributeTargets.Class)> _ Public Class MyProxyAttribute Inherits ProxyAttribute Public Sub New() End Sub 'New ' Create an instance of ServicedComponentProxy Public Overrides Function CreateInstance(serverType As Type) As MarshalByRefObject Return MyBase.CreateInstance(serverType) End Function 'CreateInstance Public Overrides Function CreateProxy(objRef1 As ObjRef, serverType As Type, _ serverObject As Object, serverContext As Context) As RealProxy Dim myCustomProxy As New MyProxy(serverType) If Not (serverContext Is Nothing) Then RealProxy.SetStubData(myCustomProxy, serverContext) End If If Not serverType.IsMarshalByRef And serverContext Is Nothing Then Throw New RemotingException("Bad Type for CreateProxy") End If Return myCustomProxy End Function 'CreateProxy End Class 'MyProxyAttribute <MyProxyAttribute()> _ Public Class CustomServer Inherits ContextBoundObject Public Sub New() Console.WriteLine("CustomServer Base Class constructor called") End Sub 'New Public Sub HelloMethod(str As String) Console.WriteLine("HelloMethod of Server is invoked with message : " + str) End Sub 'HelloMethod End Class 'CustomServer
[AttributeUsage(AttributeTargets.Class)] [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.Infrastructure)] public class MyProxyAttribute : ProxyAttribute { public MyProxyAttribute() { } // Create an instance of ServicedComponentProxy public override MarshalByRefObject CreateInstance(Type serverType) { return base.CreateInstance(serverType); } public override RealProxy CreateProxy(ObjRef objRef1, Type serverType, object serverObject, Context serverContext) { MyProxy myCustomProxy = new MyProxy(serverType); if(serverContext != null) { RealProxy.SetStubData(myCustomProxy,serverContext); } if((!serverType.IsMarshalByRef)&&(serverContext == null)) { throw new RemotingException("Bad Type for CreateProxy"); } return myCustomProxy; } } [PermissionSet(SecurityAction.Demand, Name="FullTrust")] [MyProxyAttribute] public class CustomServer :ContextBoundObject { public CustomServer() { Console.WriteLine("CustomServer Base Class constructor called"); } public void HelloMethod(string str) { Console.WriteLine("HelloMethod of Server is invoked with message : " + str); } }
[AttributeUsageAttribute(AttributeTargets::Class)] [System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::LinkDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] [System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::InheritanceDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] public ref class MyProxyAttribute: public ProxyAttribute { public: MyProxyAttribute(){} // Create an instance of ServicedComponentProxy virtual MarshalByRefObject^ CreateInstance( Type^ serverType ) override { return ProxyAttribute::CreateInstance( serverType ); } virtual RealProxy^ CreateProxy( ObjRef^ objRef1, Type^ serverType, Object^ serverObject, Context^ serverContext ) override { MyProxy^ myCustomProxy = gcnew MyProxy( serverType ); if ( serverContext != nullptr ) { RealProxy::SetStubData( myCustomProxy, serverContext ); } if ( ( !serverType->IsMarshalByRef) && (serverContext == nullptr) ) { throw gcnew RemotingException( "Bad Type for CreateProxy" ); } return myCustomProxy; } }; [MyProxyAttribute] ref class CustomServer: public ContextBoundObject { public: CustomServer() { Console::WriteLine( "CustomServer Base Class constructor called" ); } void HelloMethod( String^ str ) { Console::WriteLine( "HelloMethod of Server is invoked with message : {0}", str ); } };


System.Attribute
System.Runtime.Remoting.Proxies.ProxyAttribute


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ProxyAttribute コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


<SecurityPermissionAttribute(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure), _ AttributeUsage(AttributeTargets.Class)> _ Public Class MyProxyAttribute Inherits ProxyAttribute Public Sub New() End Sub 'New ' Create an instance of ServicedComponentProxy Public Overrides Function CreateInstance(serverType As Type) As MarshalByRefObject Return MyBase.CreateInstance(serverType) End Function 'CreateInstance Public Overrides Function CreateProxy(objRef1 As ObjRef, serverType As Type, _ serverObject As Object, serverContext As Context) As RealProxy Dim myCustomProxy As New MyProxy(serverType) If Not (serverContext Is Nothing) Then RealProxy.SetStubData(myCustomProxy, serverContext) End If If Not serverType.IsMarshalByRef And serverContext Is Nothing Then Throw New RemotingException("Bad Type for CreateProxy") End If Return myCustomProxy End Function 'CreateProxy End Class 'MyProxyAttribute <MyProxyAttribute()> _ Public Class CustomServer Inherits ContextBoundObject Public Sub New() Console.WriteLine("CustomServer Base Class constructor called") End Sub 'New Public Sub HelloMethod(str As String) Console.WriteLine("HelloMethod of Server is invoked with message : " + str) End Sub 'HelloMethod End Class 'CustomServer
[AttributeUsage(AttributeTargets.Class)] [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.Infrastructure)] public class MyProxyAttribute : ProxyAttribute { public MyProxyAttribute() { } // Create an instance of ServicedComponentProxy public override MarshalByRefObject CreateInstance(Type serverType) { return base.CreateInstance(serverType); } public override RealProxy CreateProxy(ObjRef objRef1, Type serverType, object serverObject, Context serverContext) { MyProxy myCustomProxy = new MyProxy(serverType); if(serverContext != null) { RealProxy.SetStubData(myCustomProxy,serverContext); } if((!serverType.IsMarshalByRef)&&(serverContext == null)) { throw new RemotingException("Bad Type for CreateProxy"); } return myCustomProxy; } } [PermissionSet(SecurityAction.Demand, Name="FullTrust")] [MyProxyAttribute] public class CustomServer :ContextBoundObject { public CustomServer() { Console.WriteLine("CustomServer Base Class constructor called"); } public void HelloMethod(string str) { Console.WriteLine("HelloMethod of Server is invoked with message : " + str); } }
[AttributeUsageAttribute(AttributeTargets::Class)] [System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::LinkDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] [System::Security::Permissions::SecurityPermissionAttribute (System::Security::Permissions::SecurityAction::InheritanceDemand, Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] public ref class MyProxyAttribute: public ProxyAttribute { public: MyProxyAttribute(){} // Create an instance of ServicedComponentProxy virtual MarshalByRefObject^ CreateInstance( Type^ serverType ) override { return ProxyAttribute::CreateInstance( serverType ); } virtual RealProxy^ CreateProxy( ObjRef^ objRef1, Type^ serverType, Object^ serverObject, Context^ serverContext ) override { MyProxy^ myCustomProxy = gcnew MyProxy( serverType ); if ( serverContext != nullptr ) { RealProxy::SetStubData( myCustomProxy, serverContext ); } if ( ( !serverType->IsMarshalByRef) && (serverContext == nullptr) ) { throw gcnew RemotingException( "Bad Type for CreateProxy" ); } return myCustomProxy; } }; [MyProxyAttribute] ref class CustomServer: public ContextBoundObject { public: CustomServer() { Console::WriteLine( "CustomServer Base Class constructor called" ); } void HelloMethod( String^ str ) { Console::WriteLine( "HelloMethod of Server is invoked with message : {0}", str ); } };

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ProxyAttribute プロパティ
ProxyAttribute メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

ProxyAttribute メンバ
オブジェクト型がカスタム プロキシを必要とすることを示します。
ProxyAttribute データ型で公開されるメンバを以下の表に示します。




名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- ProxyAttributeのページへのリンク