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 který se má nastavit identifikátor URI.
- uri
- String
Identifikátor URI, který se má přiřadit k zadanému objektu.
Výjimky
obj
není místní objekt, byl již zařazován nebo byla již volána aktuální metoda.
Alespoň jeden z volajících, kteří jsou výše v nástroji calltack, nemá oprávnění ke konfiguraci typů a kanálů vzdálené komunikace.
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í se identifikátor URI zadaného objektu nastaví na řetězec v parametru uri
připojeném k aktuálnímu AppDomainobjektu Guid .
Pokud aktuální aplikace naslouchá na portu HTTP, pak jak řetězec zadaný v parametru uri
uri
, tak řetězec připojený k Guid aktuální AppDomain trase k zadanému objektu. Pokud například aplikace naslouchá na portu HTTP 9000, pak jak , tak http://localhost:9000/objectUri
http://localhost:9000/<appdomainguid>/objectUri
směrovat na objekt zadaný v parametruobj
.