Condividi tramite


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metodo

Definizione

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

obj
MarshalByRefObject

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/objectUrie http://localhost:9000/<appdomainguid>/objectUri indirizzare l'oggetto specificato nel obj parametro.

Si applica a

Vedi anche