Aracılığıyla paylaş


RemotingServices.Unmarshal Yöntem

Tanım

Verileni ObjRef ara sunucu nesnesine dönüştürür.

Aşırı Yüklemeler

Unmarshal(ObjRef)

bir ObjRef alır ve bunun içinden bir proxy nesnesi oluşturur.

Unmarshal(ObjRef, Boolean)

bir ObjRef alır ve bunun dışında bir proxy nesnesi oluşturur ve bunu sunucudaki türe göre iyiler.

Unmarshal(ObjRef)

bir ObjRef alır ve bunun içinden bir proxy nesnesi oluşturur.

public:
 static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
Public Shared Function Unmarshal (objectRef As ObjRef) As Object

Parametreler

objectRef
ObjRef

Proxy'nin ObjRef oluşturulduğu uzak nesneyi temsil eden.

Döndürülenler

Verilen ObjRef nesnenin temsil ettiği bir ara sunucu.

Öznitelikler

Özel durumlar

ObjRef parametresinde objectRef belirtilen örnek iyi biçimlendirilmemiş.

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

Örnekler

Aşağıdaki kod örneği, bir nesnenin özetini kaldırma işlemini gösterir.

ChannelServices::RegisterChannel( gcnew HttpChannel );

SampleService ^ objectSample = (SampleService^)( Activator::GetObject( SampleService::typeid,
   "http://localhost:9000/MySampleService/SampleService.soap" ) );

// The GetManuallyMarshaledObject() method uses RemotingServices::Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef^ objRefSampleTwo = objectSample->GetManuallyMarshaledObject();

SampleTwo ^ objectSampleTwo = (SampleTwo^)( RemotingServices::Unmarshal( objRefSampleTwo ) );

objectSampleTwo->PrintMessage( "ObjRef successfuly unmarshaled." );
ChannelServices.RegisterChannel(new HttpChannel());

SampleService objectSample = (SampleService)Activator.GetObject(typeof(SampleService),
    "http://localhost:9000/MySampleService/SampleService.soap");

// The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef objRefSampleTwo = objectSample.GetManuallyMarshaledObject();

SampleTwo objectSampleTwo = (SampleTwo)RemotingServices.Unmarshal(objRefSampleTwo);

objectSampleTwo.PrintMessage("ObjRef successfuly unmarshaled.");
ChannelServices.RegisterChannel(New HttpChannel())

Dim objectSample As SampleService = CType(Activator.GetObject(GetType(SampleService), _ 
      "http://localhost:9000/MySampleService/SampleService.soap"), SampleService)

' The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
' to create an ObjRef object for a SampleTwo object.
Dim objRefSampleTwo As ObjRef = objectSample.GetManuallyMarshaledObject()

Dim objectSampleTwo As SampleTwo = CType(RemotingServices.Unmarshal(objRefSampleTwo), SampleTwo)

objectSampleTwo.PrintMessage("I successfully unmarshaled your ObjRef.  Thanks.")

Açıklamalar

A ObjRef , bir nesne başvurusunu bir uygulama etki alanı sınırına aktarmak için kullanılan bir nesnenin serileştirilebilir bir gösterimidir. Bir nesne için oluşturma ObjRef , hazırlama olarak bilinir. ObjRef bir kanal aracılığıyla başka bir uygulama etki alanına (büyük olasılıkla başka bir işlemde veya bilgisayarda) aktarılabilir. Diğer uygulama etki alanına girdikten sonra, ObjRef nesne için genellikle gerçek nesneye bağlı bir ara sunucu oluşturmak için öğesinin ayrıştırılması gerekir. Bu işlem, özetleme olarak bilinir. Özetleme sırasında, ObjRef uzak nesnenin yöntem bilgilerini ayıklamak için ayrıştırılır ve hem saydam ara sunucu hem RealProxy de nesneler oluşturulur. Saydam ara sunucu ortak dil çalışma zamanına kaydedilmeden önce ayrıştırılanın ObjRef içeriği saydam ara sunucuya eklenir.

, ObjRef sıralanan nesnenin Type ve sınıfını açıklayan bilgileri, belirli nesne örneğini benzersiz olarak tanımlayan bir URI'yi ve nesnenin bulunduğu uzaktan iletişim alt bölümüne nasıl ulaşıldığı hakkında iletişimle ilgili bilgileri içerir.

Ayrıca bkz.

Şunlara uygulanır

Unmarshal(ObjRef, Boolean)

bir ObjRef alır ve bunun dışında bir proxy nesnesi oluşturur ve bunu sunucudaki türe göre iyiler.

public:
 static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef, bool fRefine);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
Public Shared Function Unmarshal (objectRef As ObjRef, fRefine As Boolean) As Object

Parametreler

objectRef
ObjRef

Proxy'nin ObjRef oluşturulduğu uzak nesneyi temsil eden.

fRefine
Boolean

true proxy'yi sunucudaki türe daraltmak için; aksi takdirde , false.

Döndürülenler

Verilen ObjRef nesnenin temsil ettiği bir ara sunucu.

Öznitelikler

Özel durumlar

ObjRef parametresinde objectRef belirtilen örnek iyi biçimlendirilmemiş.

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

Açıklamalar

A ObjRef , bir nesne başvurusunu bir uygulama etki alanı sınırına aktarmak için kullanılan bir nesnenin serileştirilebilir bir gösterimidir. Bir nesne için oluşturma ObjRef , hazırlama olarak bilinir. ObjRef bir kanal aracılığıyla başka bir uygulama etki alanına (büyük olasılıkla başka bir işlemde veya bilgisayarda) aktarılabilir. Diğer uygulama etki alanına girdikten sonra, ObjRef nesne için genellikle gerçek nesneye bağlı bir ara sunucu oluşturmak için öğesinin ayrıştırılması gerekir. Bu işlem, özetleme olarak bilinir. Özetleme sırasında, ObjRef uzak nesnenin yöntem bilgilerini ayıklamak için ayrıştırılır ve hem saydam ara sunucu hem RealProxy de nesneler oluşturulur. Saydam ara sunucu ortak dil çalışma zamanına kaydedilmeden önce ayrıştırılanın ObjRef içeriği saydam ara sunucuya eklenir.

, ObjRef sıralanan nesnenin Type ve sınıfını açıklayan bilgileri, belirli nesne örneğini benzersiz olarak tanımlayan bir URI'yi ve nesnenin bulunduğu uzaktan iletişim alt bölümüne nasıl ulaşıldığı hakkında iletişimle ilgili bilgileri içerir.

İlk oluşturulduğunda ara sunucu türündedir MarshalByRefObject. Siz bunu farklı türlere dönüştürdürürken uzaktan iletişim altyapısı, türü gereksiz yere yüklememek için en çok kullanılan türü izler.

Ayrıca bkz.

Şunlara uygulanır