RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Methode

Definitie

Hiermee stelt u de URI in voor de volgende aanroep naar de Marshal(MarshalByRefObject) methode.

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)

Parameters

obj
MarshalByRefObject

Het object waarvoor een URI moet worden ingesteld.

uri
String

De URI die moet worden toegewezen aan het opgegeven object.

Uitzonderingen

obj is geen lokaal object, is al marshaled of de huidige methode is al aangeroepen.

Ten minste één van de bellers hoger in de callstack is niet gemachtigd om externe typen en kanalen te configureren.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de URI instelt die door de methode wordt gebruikt bij het Marshal marshalen van het opgegeven object.

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

Opmerkingen

De URI die door de huidige methode wordt ingesteld, wordt gebruikt bij het marshalen van het opgegeven object.

Na marshaling wordt de URI van het opgegeven object ingesteld op de tekenreeks in de uri parameter die is toegevoegd aan de Guid huidige AppDomain.

Als de huidige toepassing luistert op een HTTP-poort, worden zowel de tekenreeks die is opgegeven in de uri parameter als de uri tekenreeks toegevoegd aan de Guid huidige AppDomain route naar het opgegeven object. Als de toepassing bijvoorbeeld luistert op HTTP-poort 9000, worden beide http://localhost:9000/objectUrien http://localhost:9000/<appdomainguid>/objectUri doorgestuurd naar het object dat is opgegeven in de obj parameter.

Van toepassing op

Zie ook