RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Metod

Definition

Anger URI:n för det efterföljande anropet Marshal(MarshalByRefObject) till metoden.

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)

Parametrar

obj
MarshalByRefObject

Objektet som du vill ange en URI för.

uri
String

Den URI som ska tilldelas till det angivna objektet.

Undantag

obj är inte ett lokalt objekt, har redan konverterats eller den aktuella metoden har redan anropats.

Minst en av anroparna högre i anropsstacken har inte behörighet att konfigurera fjärrkommunikationstyper och kanaler.

Exempel

I följande kodexempel visas hur du anger den URI som ska användas av Marshal metoden när det angivna objektet konverteras.

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

Kommentarer

Den URI som anges av den aktuella metoden används när det angivna objektet konverteras.

Efter marskalkering anges URI:n för det angivna objektet till strängen i parametern uri som läggs till Guid i den aktuella AppDomain.

Om det aktuella programmet lyssnar på en HTTP-port kommer både strängen som anges i parametern uri och strängen uri som läggs till på den Guid aktuella AppDomain vägen till det angivna objektet. Om programmet till exempel lyssnar på HTTP-port 9000 dirigerar både http://localhost:9000/objectUrioch till http://localhost:9000/<appdomainguid>/objectUri objektet som anges i parametern obj .

Gäller för

Se även