RemotingServices.Marshal RemotingServices.Marshal RemotingServices.Marshal RemotingServices.Marshal Method

定義

特定の MarshalByRefObjectObjRef クラスのインスタンスに変換して、このインスタンスをアプリケーション ドメイン間およびネットワーク上の伝送のためにシリアル化できます。Converts the given MarshalByRefObject into an instance of the ObjRef class, which can be serialized for transmission between application domains and over a network.

オーバーロード

Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject)

MarshalByRefObject を取り、これをリモート処理インフラストラクチャで登録して、ObjRef クラスのインスタンスに変換します。Takes a MarshalByRefObject, registers it with the remoting infrastructure, and converts it into an instance of the ObjRef class.

Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String)

特定の MarshalByRefObject を、指定した URI を持つ ObjRef クラスのインスタンスに変換します。Converts the given MarshalByRefObject into an instance of the ObjRef class with the specified URI.

Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type)

MarshalByRefObject を取り、これを指定した URI と提供された ObjRef を持つ、Type クラスのインスタンスに変換します。Takes a MarshalByRefObject and converts it into an instance of the ObjRef class with the specified URI, and the provided Type.

Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject) Marshal(MarshalByRefObject)

MarshalByRefObject を取り、これをリモート処理インフラストラクチャで登録して、ObjRef クラスのインスタンスに変換します。Takes a MarshalByRefObject, registers it with the remoting infrastructure, and converts it into an instance of the ObjRef class.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj);
static member Marshal : MarshalByRefObject -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject) As ObjRef

パラメーター

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

変換対象のオブジェクト。The object to convert.

戻り値

Obj パラメーターで指定されたオブジェクトを表す ObjRef クラスのインスタンス。An instance of the ObjRef class that represents the object specified in the Obj parameter.

例外

Obj パラメーターがオブジェクトのプロキシです。The Obj parameter is an object proxy.

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

注釈

AObjRefオブジェクト参照をアプリケーション ドメインの境界を越えて転送に使用するオブジェクトのシリアル化可能な表現です。A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. 作成、ObjRefのオブジェクトがマーシャ リングと呼ばれます。Creating a ObjRef for an object is known as marshaling. ObjRef転送できます、チャネルを介して別のアプリケーション ドメインに (別のプロセスまたはコンピューター) 上では可能性があります。The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). その他のアプリケーション ドメインに 1 回、ObjRef一般に、実際のオブジェクトに接続されている、オブジェクトのプロキシを作成するために解析する必要があります。Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. この操作は、マーシャ リング解除と呼ばれます。This operation is known as unmarshaling.

AObjRefを説明する情報が含まれています、Typeおよびマーシャ リングされるオブジェクトのクラスは、関連するリモート処理の一部分に到達する方法の詳細についての情報を特定のオブジェクトのインスタンスとの通信を一意に識別する URIオブジェクトが存在します。A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

、マーシャ リング中には、コンテキストではなくがアクティブであったオブジェクトの作成時に、現在のスレッドからコンテキストが使用されます。During marshaling, the context from the current thread is used, not the context that was active when the object was created. URI が明示的に設定していない場合、SetObjectUriForMarshalメソッドでは、リモート処理の id インフラストラクチャが自動的に生成します。If a URI was not explicitly set by the SetObjectUriForMarshal method, it is automatically generated by the remoting identity infrastructure.

2 つの理由の 1 つのプロキシの URI を関連付けることはできません: URI は、オブジェクトのサーバー側で生成されたか、URI がわかっている場合、オブジェクトはよく知られています。You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. このため場合、Objパラメーターは、プロキシ、例外がスローされます。For this reason, if the Obj parameter is a proxy, an exception will be thrown. カスタム プロキシの透過プロキシがサーバー オブジェクトとして扱われるために、この制限が緩和されます。For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

セキュリティ

SecurityPermission
リモート処理インフラストラクチャを構成します。for configuration of the remoting infrastructure. 要求値: Demand;アクセス許可の値。 RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

こちらもご覧ください

Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String) Marshal(MarshalByRefObject, String)

特定の MarshalByRefObject を、指定した URI を持つ ObjRef クラスのインスタンスに変換します。Converts the given MarshalByRefObject into an instance of the ObjRef class with the specified URI.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj, System::String ^ URI);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj, string URI);
static member Marshal : MarshalByRefObject * string -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject, URI As String) As ObjRef

パラメーター

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

変換対象のオブジェクト。The object to convert.

URI
String String String String

新しい ObjRef を初期化するために使用する指定した URI。The specified URI with which to initialize the new ObjRef. null の場合があります。Can be null.

戻り値

Obj パラメーターで指定されたオブジェクトを表す ObjRef クラスのインスタンス。An instance of the ObjRef class that represents the object specified in the Obj parameter.

例外

Obj がオブジェクト プロキシであり、URI パラメーターが null ではありません。Obj is an object proxy, and the URI parameter is not null.

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

次のコード例は、現在を使用する方法を示しますMarshalを指定したオブジェクトをマーシャ リングするメソッド。The following code example demonstrates how to use the current Marshal method to marshal a specified object.

TcpChannel^ channel = gcnew TcpChannel( 9000 );
ChannelServices::RegisterChannel( channel );
SampleWellKnown ^ objectWellKnown = gcnew SampleWellKnown;

// After the channel is registered, the Object* needs to be registered
// with the remoting infrastructure.  So, Marshal is called.
ObjRef^ objrefWellKnown = RemotingServices::Marshal( objectWellKnown, "objectWellKnownUri" );
Console::WriteLine( "An instance of SampleWellKnown type is published at {0}.", objrefWellKnown->URI );
Console::WriteLine( "Press enter to unregister SampleWellKnown, so that it is no longer available on this channel." );
Console::ReadLine();
RemotingServices::Disconnect( objectWellKnown );
Console::WriteLine( "Press enter to end the server process." );
Console::ReadLine();
TcpChannel channel = new TcpChannel(9000);
ChannelServices.RegisterChannel(channel);

SampleWellKnown objectWellKnown = new SampleWellKnown();

// After the channel is registered, the object needs to be registered
// with the remoting infrastructure.  So, Marshal is called.
ObjRef objrefWellKnown = RemotingServices.Marshal(objectWellKnown, "objectWellKnownUri");
Console.WriteLine("An instance of SampleWellKnown type is published at {0}.", objrefWellKnown.URI);

Console.WriteLine("Press enter to unregister SampleWellKnown, so that it is no longer available on this channel.");
Console.ReadLine();
RemotingServices.Disconnect(objectWellKnown);

Console.WriteLine("Press enter to end the server process.");
Console.ReadLine();
Dim channel As New TcpChannel(9000)
ChannelServices.RegisterChannel(channel)

Dim objectWellKnown As New SampleWellKnown()
' After the channel is registered, the object needs to be registered
' with the remoting infrastructure.  So, Marshal is called.
Dim objrefWellKnown As ObjRef = RemotingServices.Marshal(objectWellKnown, "objectWellKnownUri")
Console.WriteLine("An instance of SampleWellKnown type is published at {0}.", objrefWellKnown.URI)

Console.WriteLine("Press enter to unregister SampleWellKnown, so that it is no longer available on this channel.")
Console.ReadLine()
RemotingServices.Disconnect(objectWellKnown)
Console.WriteLine("Press enter to end the server process.")
Console.ReadLine()

注釈

AObjRefオブジェクト参照をアプリケーション ドメインの境界を越えて転送に使用するオブジェクトのシリアル化可能な表現です。A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. 作成、ObjRefのオブジェクトがマーシャ リングと呼ばれます。Creating a ObjRef for an object is known as marshaling. ObjRef転送できます、チャネルを介して別のアプリケーション ドメインに (別のプロセスまたはコンピューター) 上では可能性があります。The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). その他のアプリケーション ドメインに 1 回、ObjRef一般に、実際のオブジェクトに接続されている、オブジェクトのプロキシを作成するために解析する必要があります。Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. この操作は、マーシャ リング解除と呼ばれます。This operation is known as unmarshaling.

AObjRefを説明する情報が含まれています、Typeおよびマーシャ リングされるオブジェクトのクラスは、関連するリモート処理の一部分に到達する方法の詳細についての情報を特定のオブジェクトのインスタンスとの通信を一意に識別する URIオブジェクトが存在します。A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

、マーシャ リング中には、コンテキストではなくがアクティブであったオブジェクトの作成時に、現在のスレッドからコンテキストが使用されます。During marshaling, the context from the current thread is used, not the context that was active when the object was created.

2 つの理由の 1 つのプロキシの URI を関連付けることはできません: URI は、オブジェクトのサーバー側で生成されたか、URI がわかっている場合、オブジェクトはよく知られています。You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. このため場合、Objパラメーターは、プロキシ、例外がスローされます。For this reason, if the Obj parameter is a proxy, an exception will be thrown. カスタム プロキシの透過プロキシがサーバー オブジェクトとして扱われるために、この制限が緩和されます。For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

セキュリティ

SecurityPermission
リモート処理インフラストラクチャを構成します。for configuration of the remoting infrastructure. 要求値: Demand;アクセス許可の値。 RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

こちらもご覧ください

Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type) Marshal(MarshalByRefObject, String, Type)

MarshalByRefObject を取り、これを指定した URI と提供された ObjRef を持つ、Type クラスのインスタンスに変換します。Takes a MarshalByRefObject and converts it into an instance of the ObjRef class with the specified URI, and the provided Type.

public:
 static System::Runtime::Remoting::ObjRef ^ Marshal(MarshalByRefObject ^ Obj, System::String ^ ObjURI, Type ^ RequestedType);
public static System.Runtime.Remoting.ObjRef Marshal (MarshalByRefObject Obj, string ObjURI, Type RequestedType);
static member Marshal : MarshalByRefObject * string * Type -> System.Runtime.Remoting.ObjRef
Public Shared Function Marshal (Obj As MarshalByRefObject, ObjURI As String, RequestedType As Type) As ObjRef

パラメーター

Obj
MarshalByRefObject MarshalByRefObject MarshalByRefObject MarshalByRefObject

ObjRef に変換するオブジェクト。The object to convert into a ObjRef.

ObjURI
String String String String

Obj パラメーターで指定したオブジェクトがマーシャリングされるときに使用する URI。The URI the object specified in the Obj parameter is marshaled with. null の場合があります。Can be null.

RequestedType
Type Type Type Type

Obj がマーシャリングされるときの TypeThe TypeObj is marshaled as. null の場合があります。Can be null.

戻り値

Obj パラメーターで指定されたオブジェクトを表す ObjRef クラスのインスタンス。An instance of the ObjRef class that represents the object specified in the Obj parameter.

例外

Obj がリモート オブジェクトのプロキシであり、ObjUri パラメーターが null ではありません。Obj is a proxy of a remote object, and the ObjUri parameter is not null.

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。At least one of the callers higher in the callstack does not have permission to configure remoting types and channels.

注釈

AObjRefオブジェクト参照をアプリケーション ドメインの境界を越えて転送に使用するオブジェクトのシリアル化可能な表現です。A ObjRef is a serializable representation of an object used to transfer an object reference across an application domain boundary. 作成、ObjRefのオブジェクトがマーシャ リングと呼ばれます。Creating a ObjRef for an object is known as marshaling. ObjRef転送できます、チャネルを介して別のアプリケーション ドメインに (別のプロセスまたはコンピューター) 上では可能性があります。The ObjRef can be transferred through a channel into another application domain (possibly on another process or computer). その他のアプリケーション ドメインに 1 回、ObjRef一般に、実際のオブジェクトに接続されている、オブジェクトのプロキシを作成するために解析する必要があります。Once in the other application domain, the ObjRef must be parsed to create a proxy for the object, generally connected to the real object. この操作は、マーシャ リング解除と呼ばれます。This operation is known as unmarshaling.

AObjRefを説明する情報が含まれています、Typeおよびマーシャ リングされるオブジェクトのクラスは、関連するリモート処理の一部分に到達する方法の詳細についての情報を特定のオブジェクトのインスタンスとの通信を一意に識別する URIオブジェクトが存在します。A ObjRef contains information that describes the Type and class of the object being marshaled, a URI that uniquely identifies the specific object instance, and communication related information about how to reach the remoting subdivision where the object is located.

指定したTypeリモート処理インフラストラクチャによって公開された型階層のスコープを制限するために使用します。The specified Type is used by the remoting infrastructure to limit the scope of the exposed type hierarchy. たとえば、オブジェクト A が B、C のオブジェクトから派生した、オブジェクトから派生している場合とMarshalと呼ばれる場合は、クライアントは、a が C および B 間のプロキシをキャストできますし、For example, if object A derives from object B, which derives from object C, and Marshal is called, then the client can cast the proxy between C and B but not to A.

、マーシャ リング中には、コンテキストではなくがアクティブであったオブジェクトの作成時に、現在のスレッドからコンテキストが使用されます。During marshaling, the context from the current thread is used, not the context that was active when the object was created.

2 つの理由の 1 つのプロキシの URI を関連付けることはできません: URI は、オブジェクトのサーバー側で生成されたか、URI がわかっている場合、オブジェクトはよく知られています。You cannot associate a URI with a proxy for one of two reasons: either the URI was generated at the server side for the object it represents, or the object is well known, in which case the URI is known. このため場合、Objパラメーターは、プロキシ、例外がスローされます。For this reason, if the Obj parameter is a proxy, an exception will be thrown. カスタム プロキシの透過プロキシがサーバー オブジェクトとして扱われるために、この制限が緩和されます。For custom proxies this restriction is relaxed because the transparent proxy is treated as the server object.

セキュリティ

SecurityPermission
リモート処理インフラストラクチャを構成します。for configuration of the remoting infrastructure. 要求値: Demand;アクセス許可の値。 RemotingConfigurationDemand value: Demand; Permission value: RemotingConfiguration

こちらもご覧ください

適用対象