如何:生成可远程处理的类型

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

若要使其他应用程序域中的对象能够使用您的类的实例,您的类必须继承自 MarshalByRefObject。以下过程描述如何创建一个可以通过在其他应用程序域中执行的对象来创建和调用的基本对象。

txct33xt.note(zh-cn,VS.100).gif注意:
有关如何生成和运行此示例的完整说明,请参见如何:编译和运行基本远程处理应用程序

生成可远程处理的类型

  1. 定义一个从 MarshalByRefObject 类派生的类。

       Public Class RemotableType
          Inherits MarshalByRefObject
        …
    End Class
    
    public class RemotableType : MarshalByRefObject
    {
        …
    }
    
  2. 像对不可远程处理的类型一样实现该类的方法和属性。调用 Console.WriteLine 可使侦听器显示一个字符串。这可在以后用于演示如何调用远程对象。

    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";
    }
    
  3. 创建一个名为 remoting\type 的目录,然后将该类在新目录中保存为 RemotableType.csRemotingType.vb。打开命令提示符,定位到 remoting\type 目录,然后键入以下命令:

    vbc /t:library RemotableType.vb
    
    csc /noconfig /t:library RemotableType.cs
    

示例

' 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";
    }
}

另请参见

任务

如何:生成宿主应用程序
如何:生成客户端应用程序

参考

远程处理设置架构

概念

远程应用程序的配置
服务器激活

其他资源

生成基本的 .NET Framework 远程处理应用程序

生成日期:2010-02-13