RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ustawia identyfikator URI dla kolejnego wywołania Marshal(MarshalByRefObject) metody .
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)
Parametry
Obiekt, dla który ma ustawić identyfikator URI.
- uri
- String
Identyfikator URI do przypisania do określonego obiektu.
Wyjątki
obj
nie jest obiektem lokalnym, został już marshaled lub bieżąca metoda została już wywołana.
Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.
Przykłady
Poniższy przykład kodu pokazuje, jak ustawić identyfikator URI, który będzie używany przez metodę Marshal podczas marshalingu określonego obiektu.
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
Uwagi
Identyfikator URI ustawiony przez bieżącą metodę jest używany podczas marshalingu danego obiektu.
Po przeprowadzeniu marshalingu identyfikator URI określonego obiektu jest ustawiony na ciąg w parametrze uri
dołączonym do Guid bieżącego AppDomainobiektu .
Jeśli bieżąca aplikacja nasłuchuje na porcie HTTP, zarówno ciąg określony w parametrze uri
, jak i uri
ciąg dołączony do Guid bieżącej AppDomain trasy do określonego obiektu. Jeśli na przykład aplikacja nasłuchuje na porcie HTTP 9000, to zarówno http://localhost:9000/objectUri
, jak i http://localhost:9000/<appdomainguid>/objectUri
kierować do obiektu określonego w parametrze obj
.