How to: Build a Remotable Type
This topic is specific to a legacy technology that is retained for backward compatibility with existing applications and is not recommended for new development. Distributed applications should now be developed using the Windows Communication Foundation (WCF).
To enable objects in other application domains to use an instance of your class, your class must inherit from MarshalByRefObject. The following procedure describes how to create a basic object that can be created and invoked from objects executing in another application domain.
Note
See How to: Compile and Run a Basic Remoting Application for complete instructions on how to build and run this sample.
To build a remotable type
Define a class that derives from the MarshalByRefObject class.
Public Class RemotableType Inherits MarshalByRefObject … End Class
public class RemotableType : MarshalByRefObject { … }
Implement the methods and properties for that class as you would for a non-remotable type. A call is made to
Console.WriteLine
to have the listener display a string. This is used later to demonstrate that the remote object was called.Public Function SayHello() As String Console.WriteLine("RemotableType.SayHello() was called!") Return "Hello, world" End Function 'StringMethod
public string SayHello(){ Console.WriteLine("RemotableType.SayHello() was called!"); return "Hello, world"; }
Create a directory named
remoting\type
and save the class asRemotableType.cs
orRemotingType.vb
, in the new directory. Open a command-prompt and navigate to theremoting\type
directory and type the following command:vbc /t:library RemotableType.vb
csc /noconfig /t:library RemotableType.cs
Example
' RemotableType.vb
Imports System
Public Class RemotableType
Inherits MarshalByRefObject
Public Function SayHello() As String
Console.WriteLine("RemotableType.SayHello() was called!")
Return "Hello, world"
End Function
End Class
// RemotableType.cs
using System;
public class RemotableType : MarshalByRefObject
{
public string SayHello()
{
Console.WriteLine("RemotableType.SayHello() was called!");
return "Hello, world";
}
}
See Also
Tasks
How to: Build a Hosting Application
How to: Build a Client Application
Reference
Concepts
Configuration of Remote Applications
Server Activation