RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta l'URI per la chiamata successiva al metodo Marshal(MarshalByRefObject).
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)
Parametri
Oggetto per il quale impostare un URI.
- uri
- String
URI da assegnare all'oggetto specificato.
Eccezioni
obj
non corrisponde a un oggetto locale, è già stato sottoposto a marshalling oppure il metodo corrente è già stato chiamato.
Almeno uno dei chiamanti in posizione più elevata nello stack di chiamate non dispone delle autorizzazioni alla configurazione di canali e tipi remoti.
Esempio
Nell'esempio Marshal di codice seguente viene illustrato come impostare l'URI che verrà usato dal metodo durante il marshalling dell'oggetto specificato.
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
Commenti
L'URI impostato dal metodo corrente viene usato durante il marshalling dell'oggetto specificato.
Dopo il marshalling, l'URI dell'oggetto specificato è impostato sulla stringa nel uri
parametro aggiunto all'oggetto Guid corrente AppDomain.
Se l'applicazione corrente è in ascolto su una porta HTTP, sia la stringa specificata nel uri
parametro sia la uri
stringa accodata all'oggetto Guid corrente AppDomain . Ad esempio, se l'applicazione è in ascolto sulla porta HTTP 9000, entrambi http://localhost:9000/objectUri
e http://localhost:9000/<appdomainguid>/objectUri
indirizzare l'oggetto specificato nel obj
parametro.