語言

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 不是局部物件,也不是已經被編入,或是目前的方法已經被呼叫過。

呼叫堆疊中至少有一個呼叫者沒有權限設定遠端存取類型和通道。

範例

以下程式碼範例示範如何設定方法在編組指定物件時所使用的 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 會被設定為目前 uriGuid參數 上的字串AppDomain。

如果目前應用程式正在 HTTP 埠監聽,則參數中指定的uri字串與uri附加在指定物件目前Guid路由上的字串AppDomain。 例如,如果應用程式在 HTTP 埠 9000 監聽,則 http://localhost:9000/objectUri、 和 http://localhost:9000/<appdomainguid>/objectUri 都路由到參數中 obj 指定的物件。

適用於

另請參閱