次の方法で共有


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) メソッド

定義

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

public:
 static void SetObjectUriForMarshal(MarshalByRefObject ^ obj, System::String ^ uri);
public static void SetObjectUriForMarshal (MarshalByRefObject obj, string uri);
static member SetObjectUriForMarshal : MarshalByRefObject * string -> unit
Public Shared Sub SetObjectUriForMarshal (obj As MarshalByRefObject, uri As String)

パラメーター

obj
MarshalByRefObject

URI を設定する対象となるオブジェクト。

uri
String

指定したオブジェクトに割り当てる URI。

例外

obj がローカル オブジェクトではありません。既にマーシャリングされています。または、現在のメソッドが既に呼び出されています。

コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。

次のコード例では、指定したオブジェクトをマーシャリングするときに メソッドによって Marshal 使用される URI を設定する方法を示します。

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Security::Permissions;

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

   [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::RemotingConfiguration)]   
   static void Main()
   {
      TestClass^ obj = gcnew TestClass;
      RemotingServices::SetObjectUriForMarshal( obj,  "testUri" );
      RemotingServices::Marshal(obj);
      Console::WriteLine( RemotingServices::GetObjectUri( obj ) );
   }

};
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));
    }
}
Imports System.Runtime.Remoting
Imports System.Security.Permissions


Public Class SetObjectUriForMarshalTest
    
    Class TestClass
        Inherits MarshalByRefObject
    End Class

    <SecurityPermission(SecurityAction.Demand, Flags:= SecurityPermissionFlag.RemotingConfiguration )> _
    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

注釈

現在のメソッドによって設定された URI は、指定されたオブジェクトをマーシャリングするときに使用されます。

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

現在のアプリケーションが HTTP ポートでリッスンしている場合は、 パラメーターでuri指定された文字列と、uri指定されたオブジェクトへの現在AppDomainのルートの にGuid追加された文字列の両方。 たとえば、アプリケーションが HTTP ポート 9000 でリッスンしている場合、 パラメーターで指定された オブジェクトに、 と http://localhost:9000/<appdomainguid>/objectUri の両方http://localhost:9000/objectUriobjルーティングされます。

適用対象

こちらもご覧ください