Aracılığıyla paylaş


RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Yöntem

Tanım

Yöntemine sonraki çağrı için URI'yi Marshal(MarshalByRefObject) ayarlar.

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)

Parametreler

obj
MarshalByRefObject

URI ayarlanacağı nesne.

uri
String

Belirtilen nesneye atanacak URI.

Özel durumlar

obj yerel bir nesne değil, zaten sıralanmış veya geçerli yöntem zaten çağrıldı.

Çağrı yığınındaki en üstteki arayanlardan en az birinin uzaktan iletişim türlerini ve kanallarını yapılandırma izni yoktur.

Örnekler

Aşağıdaki kod örneği, belirtilen nesneyi sıralarken yöntemi tarafından Marshal kullanılacak URI'nin nasıl ayarlandığını gösterir.

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

Açıklamalar

Verilen nesne sıralanırken geçerli yöntem tarafından ayarlanan URI kullanılır.

Hazırlamadan sonra, belirtilen nesnenin URI'si geçerli AppDomainöğesine eklenen parametresindeki uri dizeye Guid ayarlanır.

Geçerli uygulama bir HTTP bağlantı noktasında dinliyorsa, hem parametresinde belirtilen dize hem uri de uri belirtilen nesneye giden geçerli AppDomain yolun sonuna Guid eklenen dize. Örneğin, uygulama HTTP bağlantı noktası 9000'de dinliyorsa, hem de http://localhost:9000/objectUrihttp://localhost:9000/<appdomainguid>/objectUri parametresinde obj belirtilen nesneye yönlendirilir.

Şunlara uygulanır

Ayrıca bkz.