RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastaví identifikátor URI pro následné volání 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
Objekt pro nastavení identifikátoru URI.
- uri
- String
Identifikátor URI, který se má přiřadit k zadanému objektu.
Výjimky
obj není místní objekt, již byl zařazován nebo aktuální metoda již byla volána.
Alespoň jeden z volajících, kteří jsou ve volání vyšší, nemá oprávnění ke konfiguraci typů vzdálené komunikace a kanálů.
Příklady
Následující příklad kódu ukazuje, jak nastavit identifikátor URI, který bude použita metodou Marshal při zařazování zadaného objektu.
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
Poznámky
Identifikátor URI nastavený aktuální metodou se používá při zařazování daného objektu.
Po zařazování je identifikátor URI zadaného objektu nastaven na řetězec v uri parametru připojeném k Guid aktuálnímu AppDomainobjektu .
Pokud aktuální aplikace naslouchá na portu HTTP, pak řetězec zadaný v uri parametru i uri řetězec připojený k Guid aktuální AppDomain trase k zadanému objektu. Pokud například aplikace naslouchá na portu HTTP 9000, pak obě http://localhost:9000/objectUria http://localhost:9000/<appdomainguid>/objectUri směrovat na objekt zadaný v parametru obj .