次の方法で共有


RemotingServices.SetObjectUriForMarshal メソッド

Marshal メソッドへの後続の呼び出しに対して URI を設定します。

Public Shared Sub SetObjectUriForMarshal( _
   ByVal obj As MarshalByRefObject, _   ByVal uri As String _)
[C#]
public static void SetObjectUriForMarshal(MarshalByRefObjectobj,stringuri);
[C++]
public: static void SetObjectUriForMarshal(MarshalByRefObject* obj,String* uri);
[JScript]
public static function SetObjectUriForMarshal(
   obj : MarshalByRefObject,uri : String);

パラメータ

  • obj
    URI を設定する対象となるオブジェクト。
  • uri
    指定したオブジェクトに割り当てる URI。

例外

例外の種類 条件
RemotingException obj がローカル オブジェクトではありません。既にマーシャリングされています。または、現在のメソッドが既に呼び出されています。
SecurityException コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。

解説

特定のオブジェクトをマーシャリングする場合、現在のメソッドで設定された URI が使用されます。

メモ   マーシャリング後、指定したオブジェクトの URI は、現在の AppDomainGuid に追加された uri パラメータの文字列に設定されます。

メモ   現在のアプリケーションが HTTP ポートで待機している場合は、 uri パラメータで指定した文字列と現在の AppDomainGuid に追加された uri 文字列の両方が、指定したオブジェクトに送信されます。たとえば、アプリケーションが HTTP ポート 9000 で待機している場合は、https://localhost:9000/objectUri と https://localhost:9000/<appdomainguid>/objectUri の両方が obj パラメータで指定したオブジェクトに送信されます。

使用例

[Visual Basic, C#, C++] 指定したオブジェクトをマーシャリングするときに Marshal メソッドで使用する URI を設定する方法の例を次に示します。

 
Imports System
Imports System.Runtime.Remoting

Public Class SetObjectUriForMarshalTest
    
    Class TestClass
        Inherits MarshalByRefObject
    End Class

    Public Shared Sub Main()
        Dim obj As TestClass = New TestClass()

        RemotingServices.SetObjectUriForMarshal(obj, "testUri")
        RemotingServices.Marshal(obj)

        Console.WriteLine(RemotingServices.GetObjectUri(obj))
    End Sub

End Class

[C#] 
using System;
using System.Runtime.Remoting;

public class SetObjectUriForMarshalTest  {

    class TestClass : MarshalByRefObject {
    }

    public static void Main()  {

        TestClass obj = new TestClass();    

        RemotingServices.SetObjectUriForMarshal(obj, "testUri");
        RemotingServices.Marshal(obj);

        Console.WriteLine(RemotingServices.GetObjectUri(obj));
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::Runtime::Remoting;

public __gc class SetObjectUriForMarshalTest
{
public:
    __gc class TestClass : public MarshalByRefObject
    {
    };

    public:
        static void Main() 
        {
            TestClass * obj = new TestClass();    

            RemotingServices::SetObjectUriForMarshal(obj, "testUri");
            RemotingServices::Marshal(obj);

            Console::WriteLine(RemotingServices::GetObjectUri(obj));
    }
};

[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 名前空間 | Uri | Guid