共用方式為


ITrackingHandler.MarshaledObject(Object, ObjRef) 方法

定義

告知目前執行個體,物件已經被封送處理。

public:
 void MarshaledObject(System::Object ^ obj, System::Runtime::Remoting::ObjRef ^ or);
public void MarshaledObject (object obj, System.Runtime.Remoting.ObjRef or);
[System.Security.SecurityCritical]
public void MarshaledObject (object obj, System.Runtime.Remoting.ObjRef or);
abstract member MarshaledObject : obj * System.Runtime.Remoting.ObjRef -> unit
[<System.Security.SecurityCritical>]
abstract member MarshaledObject : obj * System.Runtime.Remoting.ObjRef -> unit
Public Sub MarshaledObject (obj As Object, or As ObjRef)

參數

obj
Object

已封送處理的物件。

or
ObjRef

自封送處理產生而且代表指定物件的 ObjRef

屬性

範例

下列程式代碼範例示範如何實作這個方法。 此程式代碼範例是針對介面提供的較大範例的 ITrackingHandler 一部分。

// Called when the tracked object is marshaled.

public void MarshaledObject(Object obj, ObjRef objRef)
{
    // Notify the user of the marshal event.
    Console.WriteLine("Tracking: An instance of {0} was marshaled.", 
        obj.ToString());

    // Print the channel information.
    if (objRef.ChannelInfo != null)
    {
        // Iterate over ChannelData.
        foreach(object data in objRef.ChannelInfo.ChannelData)
        {
            if (data is ChannelDataStore)
            {
                // Print the URIs from the ChannelDataStore objects.
                string[] uris = ((ChannelDataStore)data).ChannelUris;
                foreach(string uri in uris)
                    Console.WriteLine("ChannelUri: " + uri);
            }
        }
    }

    // Print the envoy information.
    if (objRef.EnvoyInfo != null)
        Console.WriteLine("EnvoyInfo: " + objRef.EnvoyInfo.ToString());

    // Print the type information.
    if (objRef.TypeInfo != null)
    {
        Console.WriteLine("TypeInfo: " + objRef.TypeInfo.ToString());
        Console.WriteLine("TypeName: " + objRef.TypeInfo.TypeName);
    }

    // Print the URI.
    if (objRef.URI != null)
        Console.WriteLine("URI: " + objRef.URI.ToString());
}

適用於