深入研究VB.Net远程调用对象的机制
http://tech.ddvip.com 2006年07月27日 社区交流
本文详细介绍深入研究VB.Net远程调用对象的机制
第三节 创建并使用一个类
在你能够通过网络调用一个对象之前,你必须有一个类库。所有的COM对象在你首次创建它们的过程中或者在机器中继续运行,在 VB.NET中,你可以使用<Serializable()>属性标记一个类,这样你的对象就是以字的方式发送,意思是说它是物理上被复制进入正在调用的应用程序过程中的。
显然,如果你想要激活一个在另外一个过程或另外一台机器中的对象的方法,你想要那个对象支持远程调用。要想这样的话,你可以从.NET系统类库中的MarshalByRefClass类或MarshalByRefComponent类中取得你的对象,与使用值传递的标准System.Object基本类不同,你是通过引用传递这些基本类。你也应该避免使用<Serializable>属性标记这个对象,因为你有可能并不希望这个对象连续,而是在服务器中运行它。
你可以创建一个简单的类库来检测外部远程调用,在 VS.NET集成环境中,创建一个新类库项目,取名为NETserver并把默认的 Class1.vb文件重命名为NETclass.vb。默认的情况下,这个类是从Component基本类中派生出来的,它是通过值传递的。你可以把 Inherits行改为通过引用传递你的类,把你的类改为MarshalByRefComponent的子类:
Public Class NETclass
Inherits System.ComponentModel.MarshalByRefComponent
你可以添加方法到包含远程运行的代码的类上。例如,你可以编写一个方法从Pubs数据库中以一个作者ID来检索作者姓名,使用Imports语句添加一个引用到 System.Data.dll中。
Imports System.Data
Imports System.Data.SQL
然后,添加一个方法到你的类上,用来检索相应的数据行并把作者姓名作为结果返回。参见下面列出的程序代码:
作者:wayne 责编:豆豆技术应用