次の方法で共有


RemotingServices.Disconnect メソッド

オブジェクトが登録したリモート処理チャネルを経由してそれ以上のメッセージを受信するのを停止します。

Public Shared Function Disconnect( _
   ByVal obj As MarshalByRefObject _) As Boolean
[C#]
public static bool Disconnect(MarshalByRefObjectobj);
[C++]
public: static bool Disconnect(MarshalByRefObject* obj);
[JScript]
public static function Disconnect(
   obj : MarshalByRefObject) : Boolean;

パラメータ

  • obj
    チャネルから切断するオブジェクト。

戻り値

オブジェクトが登録されたリモート処理チャネルから正常に切断された場合は true 。それ以外の場合は false

例外

例外の種類 条件
ArgumentNullException obj パラメータが null 参照 (Visual Basic では Nothing) です。
ArgumentException obj パラメータがプロキシです。
SecurityException 直前の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。

使用例

[Visual Basic, C#, C++] Disconnect メソッドを使用して、リモート チャネルからオブジェクトを切断する方法の例を次に示します。

 
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()

[C#] 
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();

[C++] 
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, S"objectWellKnownUri");
Console::WriteLine(S"An instance of SampleWellKnown type is published at {0}.", objrefWellKnown->URI);

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

Console::WriteLine(S"Press enter to end the server process.");
Console::ReadLine();

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

RemotingServices クラス | RemotingServices メンバ | System.Runtime.Remoting 名前空間