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());
}

适用于