共用方式為


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 會設定為附加至Guid目前 AppDomain之 的 參數中的uri字串。

如果目前的應用程式正在接聽 HTTP 埠,則參數中指定的 uri 字串和 uri 附加至 Guid 指定物件之 目前 AppDomain 路由的字串。 例如,如果應用程式正在接聽 HTTP 埠 9000,則 和 都會http://localhost:9000/objectUrihttp://localhost:9000/<appdomainguid>/objectUri路由傳送至 參數中指定的obj物件。

適用於

另請參閱