Building a Remotable Type

To enable objects in other application domains to use an instance of your class, your class must inherit from MarshalByRefObject. The following code example shows a simple object that can be created and invoked from objects executing in another application domain.

' RemotableType.vb
Imports System

Public Class RemotableType
   Inherits MarshalByRefObject
   Private _internalString As String = "This is the RemotableType."
   
   Public Function StringMethod() As String
      Return _internalString
   End Function 'StringMethod
End Class 'RemotableType
[C#]
// RemotableType.cs
using System;
public class RemotableType : MarshalByRefObject{
  private string _internalString = "This is the RemotableType.";
  public string StringMethod(){
    return _internalString;
  }
}

The class in this example is standard in every way except that it inherits from MarshalByRefObject. To compile this class into a library using the command-line tools that ship with the .NET Framework SDK, save it as RemotableType.language-extension (or use another file name of your choice, where the language extension is the language you want to compile). At the command prompt in the directory in which you saved the file, type the following command:

Visual Basic

vbc /t:library RemotableType.vb

C#

csc /noconfig /t:library RemotableType.cs

In this command, the file name is as follows:

Visual Basic

RemotableType.vb

C#

RemotableType.cs

See Also

Building a Basic .NET Remoting Application | Configuration | Activation | MarshalByRefObject