RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metodo

Definizione

Imposta l'URI per la chiamata successiva al Marshal(MarshalByRefObject) metodo .

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 cui impostare un URI.

uri
String

URI da assegnare all'oggetto specificato.

Eccezioni

obj non è un oggetto locale, è già stato effettuato il marshalling o il metodo corrente è già stato chiamato su .

Almeno uno dei chiamanti più in alto nello stack di chiamate non dispone dell'autorizzazione per configurare tipi e canali remoti.

Esempio

Nell'esempio di codice seguente viene illustrato come impostare l'URI che verrà utilizzato dal metodo durante il Marshal 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 viene impostato sulla stringa nel uri parametro aggiunto all'oggetto Guid dell'oggetto corrente AppDomain.

Se l'applicazione corrente è in ascolto su una porta HTTP, sia la stringa specificata nel uri parametro che la uri stringa aggiunta all'oggetto Guid della route corrente AppDomain all'oggetto specificato. Ad esempio, se l'applicazione è in ascolto sulla porta HTTP 9000, sia http://localhost:9000/objectUrihttp://localhost:9000/<appdomainguid>/objectUri e indirizzare all'oggetto specificato nel obj parametro .

Si applica a

Vedi anche