.NET Framework Class Library
IRemotingTypeInfo Interface

Provides type information for an object.

Namespace:  System.Runtime.Remoting
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic (Declaration)
<ComVisibleAttribute(True)> _
Public Interface IRemotingTypeInfo
Visual Basic (Usage)
Dim instance As IRemotingTypeInfo
C#
[ComVisibleAttribute(true)]
public interface IRemotingTypeInfo
Visual C++
[ComVisibleAttribute(true)]
public interface class IRemotingTypeInfo
JScript
public interface IRemotingTypeInfo
Remarks

Use this interface to provide custom type information that is carried along with the ObjRef objects.

Examples

Visual Basic
Dim objRefSample As ObjRef = RemotingServices.GetObjRefForProxy(myRemoteObject)
Console.WriteLine("***ObjRef Details***")
Console.WriteLine("URI:" + ControlChars.Tab + "{0}", objRefSample.URI)
Dim channelData As Object() = objRefSample.ChannelInfo.ChannelData
Console.WriteLine("Channel Info:")
Dim o As Object
For Each o In  channelData
   Console.WriteLine(ControlChars.Tab + "{0}", o.ToString())
Next o
Dim envoyInfo As IEnvoyInfo = objRefSample.EnvoyInfo
If envoyInfo Is Nothing Then
   Console.WriteLine("This ObjRef does not have envoy information.")
Else
   Dim envoySinks As IMessageSink = envoyInfo.EnvoySinks
   Console.WriteLine("Envoy Sink Class: {0}", envoySinks)
End If
Dim typeInfo As IRemotingTypeInfo = objRefSample.TypeInfo
Console.WriteLine("Remote type name: {0}", typeInfo.TypeName)
Console.WriteLine("Can my object cast to a Bitmap? {0}", typeInfo.CanCastTo(GetType(System.Drawing.Bitmap), objRefSample))
Console.WriteLine("Is this object from this AppDomain? {0}", objRefSample.IsFromThisAppDomain())
Console.WriteLine("Is this object from this process? {0}", objRefSample.IsFromThisProcess())
C#
ObjRef objRefSample = RemotingServices.GetObjRefForProxy(myRemoteObject);
Console.WriteLine("***ObjRef Details***");
Console.WriteLine("URI:\t{0}", objRefSample.URI);
object[] channelData = objRefSample.ChannelInfo.ChannelData;
Console.WriteLine("Channel Info:");
foreach(object o in channelData)
    Console.WriteLine("\t{0}", o.ToString());
IEnvoyInfo envoyInfo = objRefSample.EnvoyInfo;
if (envoyInfo == null) {
    Console.WriteLine("This ObjRef does not have envoy information.");
}
else {
    IMessageSink envoySinks = envoyInfo.EnvoySinks;
    Console.WriteLine("Envoy Sink Class: {0}", envoySinks);
}
IRemotingTypeInfo typeInfo = objRefSample.TypeInfo;
Console.WriteLine("Remote type name: {0}", typeInfo.TypeName);
Console.WriteLine("Can my object cast to a Bitmap? {0}",
    typeInfo.CanCastTo(typeof(System.Drawing.Bitmap), objRefSample));
Console.WriteLine("Is this object from this AppDomain? {0}", objRefSample.IsFromThisAppDomain());
Console.WriteLine("Is this object from this process? {0}",  objRefSample.IsFromThisProcess());
Visual C++
ObjRef^ objRefSample = RemotingServices::GetObjRefForProxy( myRemoteObject );
Console::WriteLine( "***ObjRef Details***" );
Console::WriteLine( "URI:\t {0}", objRefSample->URI );
array<Object^>^channelData = objRefSample->ChannelInfo->ChannelData;
Console::WriteLine( "Channel Info:" );
for each(Object^ o in channelData)
   Console::WriteLine("\t{0}", o->ToString());
IEnvoyInfo^ envoyInfo = objRefSample->EnvoyInfo;
if ( envoyInfo == nullptr )
{
   Console::WriteLine( "This ObjRef does not have envoy information." );
}
else
{
   IMessageSink^ envoySinks = envoyInfo->EnvoySinks;
   Console::WriteLine( "Envoy Sink Class: {0}", envoySinks );
}
IRemotingTypeInfo^ typeInfo = objRefSample->TypeInfo;
Console::WriteLine( "Remote type name: {0}", typeInfo->TypeName );
Console::WriteLine( "Can my Object cast to a Bitmap? {0}", typeInfo->CanCastTo( System::Drawing::Bitmap::typeid, objRefSample ) );
Console::WriteLine( "Is this Object from this AppDomain? {0}", objRefSample->IsFromThisAppDomain() );
Console::WriteLine( "Is this Object from this process? {0}", objRefSample->IsFromThisProcess() );
CPP_OLD
    ObjRef* objRefSample = RemotingServices::GetObjRefForProxy(myRemoteObject);
    Console::WriteLine(S"***ObjRef Details***");
    Console::WriteLine(S"URI:\t {0}", objRefSample->URI);
    Object* channelData[] = objRefSample->ChannelInfo->ChannelData;
    Console::WriteLine(S"Channel Info:");
    IEnumerator* myEnum = channelData->GetEnumerator();
    while (myEnum->MoveNext()) 
    {
        Object* o = __try_cast<Object*>(myEnum->Current);

        Console::WriteLine(S"\t {0}", o);
        IEnvoyInfo* envoyInfo = objRefSample->EnvoyInfo;
        if (envoyInfo == 0) 
        {
            Console::WriteLine(S"This ObjRef does not have envoy information.");
        }
        else 
        {
            IMessageSink* envoySinks = envoyInfo->EnvoySinks;
            Console::WriteLine(S"Envoy Sink Class: {0}", envoySinks);
        }
        IRemotingTypeInfo* typeInfo = objRefSample->TypeInfo;
        Console::WriteLine(S"Remote type name: {0}", typeInfo->TypeName);
        Console::WriteLine(S"Can my Object cast to a Bitmap? {0}",
            __box(typeInfo->CanCastTo(__typeof(System::Drawing::Bitmap), objRefSample)));
        Console::WriteLine(S"Is this Object from this AppDomain? {0}", __box(objRefSample->IsFromThisAppDomain()));
        Console::WriteLine(S"Is this Object from this process? {0}",  __box(objRefSample->IsFromThisProcess()));
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Tags :


Page view tracker