RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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/objectUri
http://localhost:9000/<appdomainguid>/objectUri
parametresinde obj
belirtilen nesneye yönlendirilir.