RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
為對 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)
參數
要設定 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/objectUri
http://localhost:9000/<appdomainguid>/objectUri
路由傳送至 參數中指定的obj
物件。