remoting中序列化的问题

lovesw97 2006-10-26 03:45:50
有关“Remoting要求必须是引用的对象,所以必须将类序列化”这句,不大理解,所有类都必须序列化吗?
如下:
如果不序列化UserInfo 类的话,客户端调用时也可以取到UserInfo 类的属性值阿?
服务端:
public DataEntity.UserInfo test()
{
DataEntity.UserInfo uu=new DataEntity.UserInfo();
uu.userName="张三";
uu.userPwd="dfsdf";
return uu;
}

客户端:(采用TRICK类)
obj = new RemotingServerObject.AutoServiceGetDataSet();
Console.WriteLine( "Client tcp {0}",obj.test().userName);
也可以得到"张三"的阿??
请问各位我是哪里理解错了??谢谢大家。
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
scow 2006-10-31
  • 打赏
  • 举报
回复
remoting要跨应用程序域,所以要求序列化,这是传值的方式,也可以从MarshalByRefObject继承.这样可以直接使用
  • 打赏
  • 举报
回复
樓主可以去看一下我的博客。

http://jun1111.cnblogs.com

lovvver 2006-10-27
  • 打赏
  • 举报
回复
这句话是在什么地方,多贴两句出来看看,没有语境,不好理解。
lovesw97 2006-10-27
  • 打赏
  • 举报
回复
FAINT,难道嫌这个问题太简单了吗??
各位英雄,来帮忙看看嘛
早起晚睡 2006-10-27
  • 打赏
  • 举报
回复
大家多讨论一下Remoting 我想用Remoting实现下面的过程

现在有三台机器 一台是服务器叫A 两台是客户机分别叫B,C。 现在有一台客户机用应用程序进行修改数据库进行更新、删除等操作。我想让B客户机的应用程序能够和C同时能够同步。
C# mainform 的程序

*****************************************************************************
欢迎来到CSDN
zlkingdom 2006-10-27
  • 打赏
  • 举报
回复
[Serializable]
在方法上加上这句话,方法在被远程客户端调用的时候就会序列化通过传输信道传递给客户端
不需要传递的函数是不用序列化的
lovesw97 2006-10-26
  • 打赏
  • 举报
回复
忘了说了
UserInfo 类也没有实现[Serializable]
这就是我感到不理解的
userINfo类如下
public class UserInfo
{
public UserInfo()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public string userName;
public string userPwd;
public int userAge;
public string userIdCardNo;//身份证
public string userId; //唯一标识
}
lovesw97 2006-10-26
  • 打赏
  • 举报
回复
谢谢一楼
大家继续,帮我解除疑惑
THANK
happyhippy 2006-10-26
  • 打赏
  • 举报
回复
底层应该有进行BinarySerialize
什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft? .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。   在Remoting是通过通道(channel)来实现两个应用程序域之间对象的通信的。首先,客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,即以服务的方式来发布服务器对象。远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。   在Remoting,对于要传递的对象,设计者除了需要了解通道的类型和端口号之外,无需再了解数据包的格式。但必须注意的是,客户端在获取服务器端对象时,并不是获得实际的服务端对象,而是获得它的引用。这既保证了客户端和服务器端有关对象的松散耦合,同时也优化了通信的性能。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧