在使用netremoting方式的中间层里可否使用reference方式传入自定义结构体

snowdesert 2009-09-15 10:45:44
如题,中间层是用netremoting方式通讯;
在中间层里,定义了如下方法:
public int GetDrugBasicInfo(string communityCode,ref DrugBasicInfo drugInfo)
其中,DrugBasicInfo是中间层定义的一个结构体,定义如下:

[Serializable] //指定为可序列化
public struct DrugBasicInfo
{
public string drugId;
...
}

当我在客户端调用方法GetDrugBasicInfo时,出现如下错误提示(摘要):


************** 异常文本 **************
System.Runtime.Serialization.SerializationException: 无法找到程序集“InPDoctorDBI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。

Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 TJ.CHSIS.MHIS.InPDoctor.InPDoctorDBI.GetDrugBasicInfo(String communityCode, DrugBasicInfo& drugInfo)


请问如何解决此问题?
...全文
142 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
danjiewu 2009-09-16
  • 打赏
  • 举报
回复
DrugBasicInfo是定义在InPDoctorDBI这个dll里的吗?
snowdesert 2009-09-16
  • 打赏
  • 举报
回复
InPDoctorDBI就是中间层的dll,问题的核心在于:

只要在remoting通讯方式的中间层里返回[Serializable]序列化的自定义类的对象,就报以上错误
xzq686 2009-09-15
  • 打赏
  • 举报
回复
如果是那个问题..
就是由于服务器端序列化代理的时候需要客户端的程序集,所以将客户端程序集拷贝到服务器端即可。

xzq686 2009-09-15
  • 打赏
  • 举报
回复
我想知道你服务器端运行的GetDrugBasicInfo方法是否也需要客户端的DLL支持..
snowdesert 2009-09-15
  • 打赏
  • 举报
回复
自己顶
ViewStates 2009-09-15
  • 打赏
  • 举报
回复
你如果是客户端,为什么会报这个错???
System.Runtime.Serialization.SerializationException: 无法找到程序集“InPDoctorDBI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。
你那个实体里面怎么写的?
snowdesert 2009-09-15
  • 打赏
  • 举报
回复
包含这个实体的DLL在C/S上都有的
ViewStates 2009-09-15
  • 打赏
  • 举报
回复
DrugBasicInfo
你这个实体应该是两边都能访问的到才行。也就是包含这个实体的DLL在C/S上都要有。
snowdesert 2009-09-15
  • 打赏
  • 举报
回复
服务器端运行的GetDrugBasicInfo方法不需要客户端的DLL支持

110,533

社区成员

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

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

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